{"id":50427,"name":"lark","ecosystem":"pip","repository_url":"https://github.com/lark-parser/lark","issues_count":62,"created_at":"2025-07-09T09:18:30.312Z","updated_at":"2025-07-09T09:18:30.312Z","purl":"pkg:pypi/lark","metadata":{"id":2783805,"name":"lark","ecosystem":"pypi","description":"a modern parsing library","homepage":"https://github.com/lark-parser/lark","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/lark-parser/lark","keywords_array":["Earley","LALR","parser","parsing","ast"],"namespace":null,"versions_count":18,"first_release_published_at":"2020-10-13T10:50:03.000Z","latest_release_published_at":"2024-08-13T19:48:58.000Z","latest_release_number":"1.2.2","last_synced_at":"2025-07-09T22:00:42.556Z","created_at":"2022-04-10T11:27:10.243Z","updated_at":"2025-07-09T22:00:42.557Z","registry_url":"https://pypi.org/project/lark/","install_command":"pip install lark --index-url https://pypi.org/simple","documentation_url":"https://lark.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 5 - Production/Stable","Intended Audience :: Developers","License :: OSI Approved :: MIT License","Programming Language :: Python :: 3","Topic :: Software Development :: Libraries :: Python Modules","Topic :: Text Processing :: General","Topic :: Text Processing :: Linguistic"],"normalized_name":"lark"},"repo_metadata":{"id":37732988,"uuid":"80946973","full_name":"lark-parser/lark","owner":"lark-parser","description":"Lark is a parsing toolkit for Python, built with a focus on ergonomics, performance and modularity.","archived":false,"fork":false,"pushed_at":"2024-09-23T12:37:07.000Z","size":2923,"stargazers_count":4829,"open_issues_count":121,"forks_count":409,"subscribers_count":58,"default_branch":"master","last_synced_at":"2024-10-14T20:24:45.449Z","etag":null,"topics":["cyk","earley","grammar","lalr","lark","parse","parser","parser-library","parsing-engine","parsing-library","python","tree"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lark-parser.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"lark-parser","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2017-02-04T20:38:59.000Z","updated_at":"2024-10-14T15:52:30.000Z","dependencies_parsed_at":"2024-01-06T01:04:24.138Z","dependency_job_id":"dc726cd1-b329-4808-88a7-d3b099a131e6","html_url":"https://github.com/lark-parser/lark","commit_stats":{"total_commits":1566,"total_committers":128,"mean_commits":12.234375,"dds":0.6309067688378034,"last_synced_commit":"262ab71d497a8814f0ca42ca468b923fdb47a3c7"},"previous_names":[],"tags_count":52,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lark-parser","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221907113,"owners_count":16900126,"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":"lark-parser","name":"Lark - Parsing Library \u0026 Toolkit","uuid":"38646335","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/38646335?v=4","repositories_count":11,"last_synced_at":"2024-05-20T14:53:27.685Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/lark-parser","funding_links":["https://github.com/sponsors/lark-parser"],"total_stars":4743,"followers":24,"following":0,"created_at":"2022-11-02T16:31:48.398Z","updated_at":"2024-05-20T14:53:28.986Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lark-parser","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lark-parser/repositories"},"tags":[{"name":"1.2.2","sha":"acfe33d943a1310f3ca26145eb2896bc5c4955c9","kind":"commit","published_at":"2024-08-13T19:47:06.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/1.2.2","html_url":"https://github.com/lark-parser/lark/releases/tag/1.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.2.2/manifests"},{"name":"1.2.1","sha":"ae207df1bbf6e2a7d11c7288a168090ba93f0abb","kind":"commit","published_at":"2024-08-13T09:33:36.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/1.2.1","html_url":"https://github.com/lark-parser/lark/releases/tag/1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.2.1/manifests"},{"name":"1.1.9","sha":"262ab71d497a8814f0ca42ca468b923fdb47a3c7","kind":"commit","published_at":"2024-01-10T08:30:23.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/1.1.9","html_url":"https://github.com/lark-parser/lark/releases/tag/1.1.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.9/manifests"},{"name":"1.1.8","sha":"a43373c8c16bea0e2e006eb614b21c1970e4f989","kind":"commit","published_at":"2023-10-23T08:10:46.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/1.1.8","html_url":"https://github.com/lark-parser/lark/releases/tag/1.1.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.8/manifests"},{"name":"1.1.7","sha":"e795810d9849a5ee517effadc7693f7a4ea2f076","kind":"commit","published_at":"2023-07-20T19:17:17.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/1.1.7","html_url":"https://github.com/lark-parser/lark/releases/tag/1.1.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.7/manifests"},{"name":"1.1.6","sha":"e4df0249c489d20c64222fd293b5cca4c3be4f27","kind":"commit","published_at":"2023-07-17T20:14:20.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/1.1.6","html_url":"https://github.com/lark-parser/lark/releases/tag/1.1.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.6/manifests"},{"name":"1.1.5","sha":"7d9cfa6ed09a2b125e97e3a1810d9c6443f1718e","kind":"commit","published_at":"2022-12-06T12:49:34.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/1.1.5","html_url":"https://github.com/lark-parser/lark/releases/tag/1.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.5/manifests"},{"name":"1.1.4","sha":"9e5bd90e01eb6e17acee3fa05ca35c86ea4323f2","kind":"commit","published_at":"2022-11-02T01:45:31.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/1.1.4","html_url":"https://github.com/lark-parser/lark/releases/tag/1.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.4/manifests"},{"name":"1.1.3","sha":"89a480daeb27b81c5874f96126d014e263b88e9f","kind":"commit","published_at":"2022-10-11T08:16:28.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/1.1.3","html_url":"https://github.com/lark-parser/lark/releases/tag/1.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.3/manifests"},{"name":"1.1.2","sha":"a9a60f199e6c045122da8fd6a79e401cfbc13d45","kind":"commit","published_at":"2022-03-01T14:15:25.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/1.1.2","html_url":"https://github.com/lark-parser/lark/releases/tag/1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.2/manifests"},{"name":"1.1.1","sha":"01e16c55c75be6ba8199f0873adee7f1a3146678","kind":"commit","published_at":"2022-02-08T20:57:59.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/1.1.1","html_url":"https://github.com/lark-parser/lark/releases/tag/1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.1/manifests"},{"name":"1.1.0","sha":"ad2d3c655e0f7ce387fd404ac301dddd8d8d3fb6","kind":"commit","published_at":"2022-01-31T07:59:11.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/1.1.0","html_url":"https://github.com/lark-parser/lark/releases/tag/1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.1.0/manifests"},{"name":"1.0.0","sha":"4181e4796a5f74a81a7b9e7ba543318b8f9f7bbf","kind":"commit","published_at":"2021-11-15T08:16:04.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/1.0.0","html_url":"https://github.com/lark-parser/lark/releases/tag/1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/1.0.0/manifests"},{"name":"0.12.0","sha":"293bf07c516d4bce7a7e2e37072ab9e784d6d74c","kind":"commit","published_at":"2021-08-30T09:14:13.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.12.0","html_url":"https://github.com/lark-parser/lark/releases/tag/0.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.12.0/manifests"},{"name":"0.11.3","sha":"a095071bf4ab1127d5caa094ee1c5d8f20a8fabf","kind":"commit","published_at":"2021-05-03T16:29:20.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.11.3","html_url":"https://github.com/lark-parser/lark/releases/tag/0.11.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.11.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.11.3/manifests"},{"name":"0.11.2","sha":"8c7be8310cbc00834973017758ab3a4c23c3c1fe","kind":"commit","published_at":"2021-02-16T14:50:29.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.11.2","html_url":"https://github.com/lark-parser/lark/releases/tag/0.11.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.11.2/manifests"},{"name":"0.11.1","sha":"c715426f32a32db9cb91f603a7fe674fd74e4183","kind":"commit","published_at":"2020-11-16T19:46:32.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.11.1","html_url":"https://github.com/lark-parser/lark/releases/tag/0.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.11.1/manifests"},{"name":"0.11.0","sha":"5f230c6663d032e54a99789b94445323dfa1c26b","kind":"commit","published_at":"2020-11-16T12:02:43.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.11.0","html_url":"https://github.com/lark-parser/lark/releases/tag/0.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.11.0/manifests"},{"name":"0.10.0","sha":"9f3d611022a451ca577c106c39b8b6770d457794","kind":"commit","published_at":"2020-09-21T07:13:40.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.10.0","html_url":"https://github.com/lark-parser/lark/releases/tag/0.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.10.0/manifests"},{"name":"0.9.0","sha":"11ef9a18fe1ee0d02717a906b8f4bbf91f1c9640","kind":"commit","published_at":"2020-07-01T13:53:08.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.9.0","html_url":"https://github.com/lark-parser/lark/releases/tag/0.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.9.0/manifests"},{"name":"0.8.9","sha":"d2499d8a71d61ac201c9a108f22d16375536dea2","kind":"commit","published_at":"2020-06-16T12:01:55.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.8.9","html_url":"https://github.com/lark-parser/lark/releases/tag/0.8.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.8.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.8.9/manifests"},{"name":"0.8.8","sha":"a2d3e6332ff475d0d7036c2bba91c7092cae6a92","kind":"commit","published_at":"2020-06-13T19:10:14.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.8.8","html_url":"https://github.com/lark-parser/lark/releases/tag/0.8.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.8.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.8.8/manifests"},{"name":"0.8.7","sha":"20a9e3039fea6feaa1afaef9ba237bf16c61dfe9","kind":"commit","published_at":"2020-06-13T07:23:36.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.8.7","html_url":"https://github.com/lark-parser/lark/releases/tag/0.8.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.8.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.8.7/manifests"},{"name":"0.8.6","sha":"4fbae1253f0d3b9cfb757f01566090a1502164a4","kind":"commit","published_at":"2020-06-10T11:56:17.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.8.6","html_url":"https://github.com/lark-parser/lark/releases/tag/0.8.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.8.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.8.6/manifests"},{"name":"0.8.5","sha":"b2f99f9933da9340813b60d2eb196b843d17d840","kind":"commit","published_at":"2020-03-29T09:27:02.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.8.5","html_url":"https://github.com/lark-parser/lark/releases/tag/0.8.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.8.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.8.5/manifests"},{"name":"0.8.3","sha":"d408959479114364ae47be75c4a0bc4dee32183e","kind":"commit","published_at":"2020-03-28T20:14:11.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.8.3","html_url":"https://github.com/lark-parser/lark/releases/tag/0.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.8.3/manifests"},{"name":"0.8.2","sha":"aa82f5a28a3e5d6d57a4e0ddc93c379ca1b3869b","kind":"commit","published_at":"2020-03-07T08:38:55.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.8.2","html_url":"https://github.com/lark-parser/lark/releases/tag/0.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.8.2/manifests"},{"name":"0.8.1","sha":"5346231e14d31ab5bbc3cbc014a31b405d40ef39","kind":"commit","published_at":"2020-01-22T23:12:12.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.8.1","html_url":"https://github.com/lark-parser/lark/releases/tag/0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.8.1/manifests"},{"name":"0.8.0","sha":"73427f785c767dbb06fb538f512602324a7d1cea","kind":"commit","published_at":"2020-01-22T13:27:05.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.8.0","html_url":"https://github.com/lark-parser/lark/releases/tag/0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.8.0/manifests"},{"name":"0.7.8","sha":"f07359c31683805f4004fe2d6f37dec84b7c094f","kind":"commit","published_at":"2019-11-01T12:39:25.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.7.8","html_url":"https://github.com/lark-parser/lark/releases/tag/0.7.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.7.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.7.8/manifests"},{"name":"0.7.7","sha":"404fef87f4f168543a333ca3ecb045f7017ac15a","kind":"commit","published_at":"2019-10-03T08:29:49.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.7.7","html_url":"https://github.com/lark-parser/lark/releases/tag/0.7.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.7.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.7.7/manifests"},{"name":"0.7.5","sha":"f43631949cddf6a50fa1bb5d083335b2c6eefee8","kind":"commit","published_at":"2019-09-06T05:18:42.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.7.5","html_url":"https://github.com/lark-parser/lark/releases/tag/0.7.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.7.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.7.5/manifests"},{"name":"0.7.4","sha":"f06a83a8a79e0507ae58e7f8c5af8888e1d92da8","kind":"commit","published_at":"2019-08-28T21:50:36.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.7.4","html_url":"https://github.com/lark-parser/lark/releases/tag/0.7.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.7.4/manifests"},{"name":"0.7.3","sha":"3cdee35af57dbd0a3f9773ade8486044ab8720fc","kind":"commit","published_at":"2019-08-14T09:31:43.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.7.3","html_url":"https://github.com/lark-parser/lark/releases/tag/0.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.7.3/manifests"},{"name":"0.7.2","sha":"dd3a812fead3fc1f2a45d45d337fb7abaabf63b1","kind":"commit","published_at":"2019-07-30T09:31:28.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.7.2","html_url":"https://github.com/lark-parser/lark/releases/tag/0.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.7.2/manifests"},{"name":"0.7.1","sha":"4d8301f73cbea06a6182e02aa120ec7c563a88db","kind":"commit","published_at":"2019-05-04T17:13:39.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.7.1","html_url":"https://github.com/lark-parser/lark/releases/tag/0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.7.1/manifests"},{"name":"0.7.0","sha":"9137cc4fa4e27b62f8bdef05734700d162c27a97","kind":"commit","published_at":"2019-03-28T13:53:28.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.7.0","html_url":"https://github.com/lark-parser/lark/releases/tag/0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.7.0/manifests"},{"name":"0.6.7","sha":"b78e8fa48516f9740cf70b01f5393534f5e9ff05","kind":"commit","published_at":"2019-03-09T11:10:57.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.6.7","html_url":"https://github.com/lark-parser/lark/releases/tag/0.6.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.6.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.6.7/manifests"},{"name":"0.6.6","sha":"2b3fabd01cec3f6803ec7d255bf0436476c2b812","kind":"commit","published_at":"2019-03-09T11:04:33.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.6.6","html_url":"https://github.com/lark-parser/lark/releases/tag/0.6.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.6.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.6.6/manifests"},{"name":"0.66","sha":"13ddc43782e9f3f34fc5331081682c3678df0598","kind":"commit","published_at":"2019-01-20T12:36:39.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.66","html_url":"https://github.com/lark-parser/lark/releases/tag/0.66","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.66","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.66/manifests"},{"name":"0.6.5","sha":"216c341b068c27e2689c95c0d70dd914feb0d00a","kind":"commit","published_at":"2018-10-16T11:19:47.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.6.5","html_url":"https://github.com/lark-parser/lark/releases/tag/0.6.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.6.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.6.5/manifests"},{"name":"0.6.4","sha":"1c1b364de8466790b42ce2a2b6b3bc111af8eb7f","kind":"commit","published_at":"2018-08-22T13:56:36.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.6.4","html_url":"https://github.com/lark-parser/lark/releases/tag/0.6.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.6.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.6.4/manifests"},{"name":"0.6.3","sha":"faf2a8c2138c3115770ca4c8913cab10c0d8052d","kind":"commit","published_at":"2018-08-03T01:53:59.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.6.3","html_url":"https://github.com/lark-parser/lark/releases/tag/0.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.6.3/manifests"},{"name":"0.6.2","sha":"d5b3af208da9a5ce02bcb0d3352dda93e22e438a","kind":"commit","published_at":"2018-07-18T13:03:25.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.6.2","html_url":"https://github.com/lark-parser/lark/releases/tag/0.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.6.2/manifests"},{"name":"0.6.1","sha":"c637f3b35e55e867daad7ee447e8568cf6739ed9","kind":"commit","published_at":"2018-07-11T12:28:32.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.6.1","html_url":"https://github.com/lark-parser/lark/releases/tag/0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.6.1/manifests"},{"name":"0.6.0","sha":"e7212261b282bd5a56d9cd2a9e3ad9a24cb5da31","kind":"commit","published_at":"2018-06-27T14:04:23.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.6.0","html_url":"https://github.com/lark-parser/lark/releases/tag/0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.6.0/manifests"},{"name":"0.5.6","sha":"eb6e809ffcf30b0e65ded939032dd6b223d2eb78","kind":"commit","published_at":"2018-04-05T13:15:22.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.5.6","html_url":"https://github.com/lark-parser/lark/releases/tag/0.5.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.5.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.5.6/manifests"},{"name":"0.5.5","sha":"3eebd4ad4bf9859a94cbca1226cad042209361fd","kind":"commit","published_at":"2018-03-08T21:26:00.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.5.5","html_url":"https://github.com/lark-parser/lark/releases/tag/0.5.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.5.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.5.5/manifests"},{"name":"0.5.4","sha":"834dc9da2255898cc294bb91f7042f5d3a8fcf3e","kind":"commit","published_at":"2018-02-18T15:31:45.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.5.4","html_url":"https://github.com/lark-parser/lark/releases/tag/0.5.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.5.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.5.4/manifests"},{"name":"0.5.3","sha":"443a9544e427b7dc6bbfbb33f6a69b2882280b3a","kind":"commit","published_at":"2018-01-24T12:44:09.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.5.3","html_url":"https://github.com/lark-parser/lark/releases/tag/0.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.5.3/manifests"},{"name":"0.5.2","sha":"4679a348cea97f633a486a5b14cc32ba59c72f2e","kind":"commit","published_at":"2018-01-10T12:46:25.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.5.2","html_url":"https://github.com/lark-parser/lark/releases/tag/0.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.5.2/manifests"},{"name":"0.5.1","sha":"e9603b5a1fc8d3234d6aafb2e0f5b3b5c282c7f5","kind":"commit","published_at":"2018-01-02T12:26:29.000Z","download_url":"https://codeload.github.com/lark-parser/lark/tar.gz/0.5.1","html_url":"https://github.com/lark-parser/lark/releases/tag/0.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lark-parser%2Flark/tags/0.5.1/manifests"}]},"repo_metadata_updated_at":"2024-10-29T20:21:03.311Z","dependent_packages_count":302,"downloads":15255362,"downloads_period":"last-month","dependent_repos_count":1968,"rankings":{"downloads":0.1554449117435869,"dependent_repos_count":0.2505266978608571,"dependent_packages_count":0.11545862732520845,"stargazers_count":1.111588931059787,"forks_count":2.712987146205014,"docker_downloads_count":0.5683208004229364,"average":0.8190545191028983},"purl":"pkg:pypi/lark","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/lark","docker_dependents_count":554,"docker_downloads_count":27510860,"usage_url":"https://repos.ecosyste.ms/usage/pypi/lark","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/lark/dependencies","status":null,"funding_links":["https://github.com/sponsors/lark-parser"],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/lark/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/lark/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/lark/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/lark/related_packages","maintainers":[{"uuid":"erez","login":"erez","name":null,"email":null,"url":null,"packages_count":15,"html_url":"https://pypi.org/user/erez/","role":null,"created_at":"2022-11-19T03:26:20.172Z","updated_at":"2022-11-19T03:26:20.172Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/erez/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":703949,"maintainers_count":298789,"namespaces_count":0,"keywords_count":231836,"github":"pypi","metadata":{"funded_packages_count":49504},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-07-09T05:39:50.667Z","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":45,"unique_repositories_count_past_30_days":4,"recent_issues":[{"uuid":"4528230982","node_id":"PR_kwDOSn3wsM7fnM-p","number":5,"state":"open","title":"Bump the minor-update group with 145 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-26T23:33:44.000Z","updated_at":"2026-05-26T23:33:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":145,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.5.9","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"transformers","old_version":"5.5.3","new_version":"5.9.0","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"filelock","old_version":"3.16.1","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"alembic","old_version":"1.16.4","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.29.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.2.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.9","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.15","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.15","repository_url":"https://github.com/boto/botocore"},{"name":"click","old_version":"8.1.7","new_version":"8.4.1","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.10.6","new_version":"7.14.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.2.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.5.4","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.2.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.58.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.2","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.53.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.9.0","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.1","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.80.0"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"harfile","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.16.4","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.153.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.12.0","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.16","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librosa","old_version":"0.10.2.post1","new_version":"0.11.0","repository_url":"https://github.com/librosa/librosa"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.12.30","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.5.1.27"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.35"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.22.0.52"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.0.66"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.2.18"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.1.7"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.30.4"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.19.1","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.41.0","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.47.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.1","repository_url":"https://github.com/getsentry/responses"},{"name":"rpds-py","old_version":"0.20.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.17.1","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.5.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smart-open","old_version":"7.1.0","new_version":"7.6.1","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"structlog","old_version":"25.4.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.7.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.68.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.26.1","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.48.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.29.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xxhash","old_version":"3.5.0","new_version":"3.7.0","repository_url":"https://github.com/ifduyue/python-xxhash"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.2","repository_url":"https://github.com/aio-libs/yarl"},{"name":"tpu-inference","old_version":"0.19.0","new_version":"0.20.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"helion","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/pytorch/helion"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 145 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.5.9` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.9.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.136.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.25.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.13.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.29.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.42.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.42.1` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.4.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.18.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.13.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.6.3` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.29.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.2.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.9` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.15` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.15` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.4.1` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.14.1` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.2.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.5.4` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.2.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.58.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.30.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.2` | `2.53.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.6.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.10.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.9.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.1` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.4.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.5.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.16.4` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.15.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.153.0` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.16` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [librosa](https://github.com/librosa/librosa) | `0.10.2.post1` | `0.11.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.36.0` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.12.30` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.5.1.27` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.35` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.22.0.52` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.0.66` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.2.18` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.1.7` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.30.4` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.63b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.63b1` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.19.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.9.6` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.41.0` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.0` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.47.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.20.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.1` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.1` | `0.30.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.17.1` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.5.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.1.0` | `7.6.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.13.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.4.0` | `25.5.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.7.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.68.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.26.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.48.0` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.29.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.7.0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.5.0` | `3.7.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.2` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.19.0` | `0.20.0` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [helion](https://github.com/pytorch/helion) | `1.0.0` | `1.1.0` |\n\nUpdates `regex` from 2026.2.28 to 2026.5.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.5.9\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReverse matching with full unicode casefolding could lead to out-of-range string indexes.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eA fix for older Python versions before free-threading was  supported.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReplaced atomic operations with mutex on pattern object for free-threaded Python.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.26\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#598](https://github.com/mrabarnett/mrab-regex/issues/598): Fix race condition in storage caching with atomic operations.\n\u003cp\u003eReplaced use of PyUnicode_GET_LENGTH with PyUnicode_GetLength.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.2.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdded \\z as alias of \\Z, like in re module.\n\u003cp\u003eAdded prefixmatch as alias of match, like in re module.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.1.15\u003c/p\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.5.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.9.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eCohere2Moe\u003c/h3\u003e\n\u003cp\u003eCommand A+ is a Mixture-of-Experts (MoE) language model from Cohere that features a hybrid attention pattern combining sliding window and full attention layers. The model incorporates both shared and routed experts and supports a very large context window for processing extensive text sequences.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/cohere2_moe\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new cohere2_moe model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46115\"\u003e#46115\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/46115\"\u003e#46115\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eParakeet tdt (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44171\"\u003e#44171\u003c/a\u003e)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eParakeet tdt (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44171\"\u003e#44171\u003c/a\u003e) by \u003ca href=\"https://github.com/lmaksym\"\u003e\u003ccode\u003e@​lmaksym\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eHRM-Text\u003c/h3\u003e\n\u003cp\u003eHRM-Text is an improved autoregressive language-modeling variant of the Hierarchical Reasoning Model (HRM) that uses a hierarchical recurrent forward pass with two transformer stacks - one for slow, abstract planning (H) and one for fast, detailed computation (L) - reused inside a nested recurrence. It features PrefixLM attention where instruction tokens attend bidirectionally while response tokens attend causally, per-head sigmoid output gates, and parameterless RMSNorm. The model is designed as a base language model without instruction tuning or chat templates.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/hrm_text\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/papers/2506.21734\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd hrm text (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46025\"\u003e#46025\u003c/a\u003e) by \u003ca href=\"https://github.com/abcd1927\"\u003e\u003ccode\u003e@​abcd1927\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/46025\"\u003e#46025\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking changes\u003c/h2\u003e\n\u003cp\u003eThe \u003ccode\u003etext_embeds\u003c/code\u003e input for SAM3, EdgeTAM, and SAM3-Lite-Text models now expects full text embeddings instead of just pooler outputs, aligning with other models in the library — users must update their inputs accordingly.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e🚨Fix memory leaks caused by lru decorators in vision models (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45922\"\u003e#45922\u003c/a\u003e) by \u003ca href=\"https://github.com/yonigozlan\"\u003e\u003ccode\u003e@​yonigozlan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAudio\u003c/h2\u003e\n\u003cp\u003eAudio support was expanded with the addition of AudioFlamingoNext model checkpoints and improved compilability of audio/vision encoders via standalone pure functions. Additional improvements include better error messaging when loading audio from video files and new documentation for audio/video processors.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003euser friendly error when loading audio from video (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45221\"\u003e#45221\u003c/a\u003e) by \u003ca href=\"https://github.com/eustlb\"\u003e\u003ccode\u003e@​eustlb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45221\"\u003e#45221\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] adding audio/video processors (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45795\"\u003e#45795\u003c/a\u003e) by \u003ca href=\"https://github.com/stevhliu\"\u003e\u003ccode\u003e@​stevhliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45795\"\u003e#45795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Audio Flamingo Next checkpoints (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44830\"\u003e#44830\u003c/a\u003e) by \u003ca href=\"https://github.com/lashahub\"\u003e\u003ccode\u003e@​lashahub\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44830\"\u003e#44830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtract dynamic vision/audio tensors into standalone pure functions (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45396\"\u003e#45396\u003c/a\u003e) by \u003ca href=\"https://github.com/IlyasMoutawwakil\"\u003e\u003ccode\u003e@​IlyasMoutawwakil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45396\"\u003e#45396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGeneration\u003c/h2\u003e\n\u003cp\u003eFixed generation issues including \u003ccode\u003einputs_embeds\u003c/code\u003e and \u003ccode\u003eper_layer_inputs\u003c/code\u003e handling for Gemma4, an \u003ccode\u003eAttributeError\u003c/code\u003e in RAG's \u003ccode\u003egenerate()\u003c/code\u003e caused by missing config fields, and flaky VLM generation tests by blocking special image tokens during sampling.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Gemma4 generation from inputs_embeds and per_layer_inputs (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46049\"\u003e#46049\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46049\"\u003e#46049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AttributeError in RAG generate() for missing config fields (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46035\"\u003e#46035\u003c/a\u003e) by \u003ca href=\"https://github.com/Sriniketh24\"\u003e\u003ccode\u003e@​Sriniketh24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46035\"\u003e#46035\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0a2757da521a7a49b8143d9e0c938f08747d682e\"\u003e\u003ccode\u003e0a2757d\u003c/code\u003e\u003c/a\u003e release v5.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/e370a7f3f49c3c759cf8c7c01a935ce0e00c3f44\"\u003e\u003ccode\u003ee370a7f\u003c/code\u003e\u003c/a\u003e fix cohere2 tp_plan for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f59ffd1ef95634f9b0317ec5d8d43d71e3604a10\"\u003e\u003ccode\u003ef59ffd1\u003c/code\u003e\u003c/a\u003e Add new cohere2_moe model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46115\"\u003e#46115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4f41f261efcfd71ce08db2890b7c632cc9ffc0bc\"\u003e\u003ccode\u003e4f41f26\u003c/code\u003e\u003c/a\u003e [loading] Free up tensors faster inside ConversionOps (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46110\"\u003e#46110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d5dd7eed2f7d5b2ccba569e150647ef275e56365\"\u003e\u003ccode\u003ed5dd7ee\u003c/code\u003e\u003c/a\u003e Fix post processing RF-DETR (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46041\"\u003e#46041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0b25f8c49c37530ce9f8742d7a8c19ed8d254d7d\"\u003e\u003ccode\u003e0b25f8c\u003c/code\u003e\u003c/a\u003e [serve] Support for reasoning  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45690\"\u003e#45690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0df9b7fcaab447c75543598e6d959065c2296a24\"\u003e\u003ccode\u003e0df9b7f\u003c/code\u003e\u003c/a\u003e Fix Gemma4 generation from inputs_embeds and per_layer_inputs (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46049\"\u003e#46049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/38a8b55f22d593c103e8bcc616413e70a5ef03ca\"\u003e\u003ccode\u003e38a8b55\u003c/code\u003e\u003c/a\u003e Parakeet tdt (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44171\"\u003e#44171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/3428030a179620b01cb598928b6cc7d5e5e60990\"\u003e\u003ccode\u003e3428030\u003c/code\u003e\u003c/a\u003e Remove mask visualization tool from \u003ccode\u003emasking_utils.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46066\"\u003e#46066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/dda06506142a0efe4081a0ab574fbd3c7c72dc37\"\u003e\u003ccode\u003edda0650\u003c/code\u003e\u003c/a\u003e user friendly error when loading audio from video (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45221\"\u003e#45221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.128.0 to 0.136.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.3\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (the default). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15589\"\u003e#15589\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.2\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Validate Server Sent Event fields to avoid applications from sending broken data. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15588\"\u003e#15588\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15464\"\u003e#15464\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update and simplify docs about help and management. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15583\"\u003e#15583\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add docs references to central contributing docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15580\"\u003e#15580\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15577\"\u003e#15577\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🍱 Update sponsors: TalorData image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15562\"\u003e#15562\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs, simplify usage of admonitions, only default ones. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15553\"\u003e#15553\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix image URLs in \u003ccode\u003eindex.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15534\"\u003e#15534\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Fix Azkaban spelling typo in \u003ccode\u003evirtual-environments.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15463\"\u003e#15463\u003c/a\u003e by \u003ca href=\"https://github.com/isaacbernat\"\u003e\u003ccode\u003e@​isaacbernat\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Improve layout and styling. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15462\"\u003e#15462\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Refactor opinions section with interactive tabs and new logos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15458\"\u003e#15458\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add FastAPI Conf '26 announcement to docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15457\"\u003e#15457\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Improve translation consistency in \u003ccode\u003e‎docs/pt/docs/advanced/generate-clients.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15456\"\u003e#15456\u003c/a\u003e by \u003ca href=\"https://github.com/Will-thom\"\u003e\u003ccode\u003e@​Will-thom\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15530\"\u003e#15530\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15529\"\u003e#15529\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15528\"\u003e#15528\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15527\"\u003e#15527\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15526\"\u003e#15526\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15525\"\u003e#15525\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15524\"\u003e#15524\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15522\"\u003e#15522\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15523\"\u003e#15523\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15520\"\u003e#15520\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15521\"\u003e#15521\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Fix typos in Spanish LLM-prompt. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15472\"\u003e#15472\u003c/a\u003e by \u003ca href=\"https://github.com/crr004\"\u003e\u003ccode\u003e@​crr004\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Update tests, don't double dispose the engine. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15587\"\u003e#15587\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⚡️ Speed up test suite via caching and fixture scopes to make it ~24% faster. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13583\"\u003e#13583\u003c/a\u003e by \u003ca href=\"https://github.com/dikos1337\"\u003e\u003ccode\u003e@​dikos1337\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15585\"\u003e#15585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump urllib3 from 2.6.3 to 2.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15502\"\u003e#15502\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump idna from 3.11 to 3.15. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15565\"\u003e#15565\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.15.0 to 4.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15571\"\u003e#15571\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Migrate docs from MkDocs to Zensical. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15563\"\u003e#15563\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15548\"\u003e#15548\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/82064857539e6286522c347b4b11331b48dd2378\"\u003e\u003ccode\u003e8206485\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c910e0139f983d0e04e2d1d235cd71803afeae34\"\u003e\u003ccode\u003ec910e01\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/063b5bf582d31fb155cc6bc6f88cf512329d0fd5\"\u003e\u003ccode\u003e063b5bf\u003c/code\u003e\u003c/a\u003e ♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/22b02e26f9e8c7e32bd8266e2b0ebe8bb3a0db2b\"\u003e\u003ccode\u003e22b02e2\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3b252a2a22ba27a8ab83d6bde7d9cddbc5bf738e\"\u003e\u003ccode\u003e3b252a2\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c7fb7851b3389f24c51701d705458989be53ccbb\"\u003e\u003ccode\u003ec7fb785\u003c/code\u003e\u003c/a\u003e ♻️ Validate Server Sent Event fields to avoid applications from sending broke...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cb83b83dcf78eab4ea17d504db5abcda705fbdc4\"\u003e\u003ccode\u003ecb83b83\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/00f805cec94c0bf48c1f9a563535a3ab2e6f90ab\"\u003e\u003ccode\u003e00f805c\u003c/code\u003e\u003c/a\u003e ✅ Update tests, don't double dispose the engine (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15587\"\u003e#15587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3675137523dc167981aa3a3c44599b4f3079ccd8\"\u003e\u003ccode\u003e3675137\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7b57e42986bb4d40c9eb6580537d13fb8e76097e\"\u003e\u003ccode\u003e7b57e42\u003c/code\u003e\u003c/a\u003e 📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15464\"\u003e#15464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.0...0.136.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.0 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Django] Pass correct registry to MultiProcessCollector by \u003ca href=\"https://github.com/jelly\"\u003e\u003ccode\u003e@​jelly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1152\"\u003eprometheus/client_python#1152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an AIOHTTP exporter by \u003ca href=\"https://github.com/Lexicality\"\u003e\u003ccode\u003e@​Lexicality\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1139\"\u003eprometheus/client_python#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd remove_matching() method for metric label deletion by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1121\"\u003eprometheus/client_python#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(multiprocess): avoid double-building child metric names (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1035\"\u003e#1035\u003c/a\u003e) by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1146\"\u003eprometheus/client_python#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't interleave histogram metrics in multi-process collector by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1148\"\u003eprometheus/client_python#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax registry type annotations for exposition by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1149\"\u003eprometheus/client_python#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded compression support in pushgateway by \u003ca href=\"https://github.com/ritesh-avesha\"\u003e\u003ccode\u003e@​ritesh-avesha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1144\"\u003eprometheus/client_python#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) by \u003ca href=\"https://github.com/Chadys\"\u003e\u003ccode\u003e@​Chadys\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1143\"\u003eprometheus/client_python#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code...\n\n_Description has been truncated_","html_url":"https://github.com/kingcharlezz/deepseek-v4-flash-deterministic-vllm/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingcharlezz%2Fdeepseek-v4-flash-deterministic-vllm/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"},{"uuid":"4452313204","node_id":"PR_kwDOI7xefs7b1Vf9","number":42717,"state":"open","title":"Bump the minor-update group across 1 directory with 143 updates","user":"dependabot[bot]","labels":["rocm","ci/build","nvidia","dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-15T08:01:08.000Z","updated_at":"2026-05-20T05:01:30.742Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":143,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.5.9","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"transformers","old_version":"5.5.3","new_version":"5.8.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"filelock","old_version":"3.16.1","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"alembic","old_version":"1.16.4","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.29.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.2.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.9","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.10","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.10","repository_url":"https://github.com/boto/botocore"},{"name":"click","old_version":"8.1.7","new_version":"8.4.0","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.10.6","new_version":"7.14.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.2.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.5.4","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.2.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.1","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.53.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.9.0","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.80.0"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"harfile","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.15.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.152.8","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.12.0","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.15","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librosa","old_version":"0.10.2.post1","new_version":"0.11.0","repository_url":"https://github.com/librosa/librosa"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.12.30","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.4.1.1"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.2.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.2.75"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.22.0.52"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.2.0.46"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.17.1.22"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.0.1"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.7.10.1"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.30.4"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.2.75"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.19.1","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.40.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.46.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.0","repository_url":"https://github.com/getsentry/responses"},{"name":"rpds-py","old_version":"0.20.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.17.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"safetensors","old_version":"0.4.5","new_version":"0.7.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.5.0","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smart-open","old_version":"7.1.0","new_version":"7.6.1","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"structlog","old_version":"25.4.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.7.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.68.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.25.1","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.47.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.29.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xxhash","old_version":"3.5.0","new_version":"3.7.0","repository_url":"https://github.com/ifduyue/python-xxhash"},{"name":"yarl","old_version":"1.17.1","new_version":"1.23.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 143 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.5.9` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.8.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.136.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.25.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.13.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.29.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.4.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.18.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.13.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.6.3` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.29.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.2.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.9` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.10` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.10` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.4.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.14.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.2.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.5.4` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.2.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.57.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.1` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.30.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.2` | `2.53.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.6.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.10.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.9.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.4.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.5.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.15.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.15.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.152.8` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.15` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [librosa](https://github.com/librosa/librosa) | `0.10.2.post1` | `0.11.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.36.0` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.12.30` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.4.1.1` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.2.75` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.22.0.52` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.2.0.46` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.17.1.22` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.0.1` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.7.10.1` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.30.4` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.19.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.9.6` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.40.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.0` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.46.4` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.20.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.1` | `0.30.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.17.0` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.4.5` | `0.7.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.5.0` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.1.0` | `7.6.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.13.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.4.0` | `25.5.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.7.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.68.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.25.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.47.0` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.29.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.7.0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.5.0` | `3.7.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.23.0` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.5.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.5.9\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReverse matching with full unicode casefolding could lead to out-of-range string indexes.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eA fix for older Python versions before free-threading was  supported.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReplaced atomic operations with mutex on pattern object for free-threaded Python.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.26\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#598](https://github.com/mrabarnett/mrab-regex/issues/598): Fix race condition in storage caching with atomic operations.\n\u003cp\u003eReplaced use of PyUnicode_GET_LENGTH with PyUnicode_GetLength.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.2.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdded \\z as alias of \\Z, like in re module.\n\u003cp\u003eAdded prefixmatch as alias of match, like in re module.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.1.15\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.5.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePatch release v5.8.1\u003c/h1\u003e\n\u003cp\u003eThis release is mainly to fix the Deepseek V4 integration!!!\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[fix] Add fatal_error to ContinuousBatchingManager so the serving... by \u003ca href=\"https://github.com/qgallouedec\"\u003e\u003ccode\u003e@​qgallouedec\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/remi-or\"\u003e\u003ccode\u003e@​remi-or\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix WeightConverter regex incorrectly matching shared_experts as experts by \u003ca href=\"https://github.com/silencelamb\"\u003e\u003ccode\u003e@​silencelamb\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deepseek v4 by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45892\"\u003e#45892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeepseek v4 csa mask collapse by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Sawyer117\"\u003e\u003ccode\u003e@​Sawyer117\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45928\"\u003e#45928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.8.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.8.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eDeepSeek-V4\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eDeepSeek-V4 is the next-generation MoE (Mixture of Experts) language model from DeepSeek that introduces several architectural innovations over DeepSeek-V3. The architecture replaces Multi-head Latent Attention (MLA) with a hybrid local + long-range attention design, swaps residual connections for Manifold-Constrained Hyper-Connections (mHC), and bootstraps the first few MoE layers with a static token-id → expert-id hash table. This implementation covers DeepSeek-V4-Flash, DeepSeek-V4-Pro, and their -Base pretrained variants, which share the same architecture but differ in width, depth, expert count and weights.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/deepseek_v4\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash/blob/main/DeepSeek_V4.pdf\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd DeepSeek V4 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45643\"\u003e#45643\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45643\"\u003e#45643\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGemma 4 Assistant\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eGemma 4 Assistant is a small, text-only model that enables speculative decoding for Gemma 4 models using the Multi-Token Prediction (MTP) method and associated candidate generator. The model shares the same Gemma4TextModel backbone as other Gemma 4 models but uses KV sharing throughout the entire model, allowing it to reuse the KV cache populated by the target model and skip the pre-fill phase entirely. This architecture includes cross-attention to make the most of the target model's context, allowing the assistant to accurately predict more drafted tokens per drafting round.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/gemma4_assistant\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFirst model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45788\"\u003e#45788\u003c/a\u003e) by \u003ca href=\"https://github.com/SindhuRaghuram97\"\u003e\u003ccode\u003e@​SindhuRaghuram97\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45788\"\u003e#45788\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeechPlus\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eGranite Speech Plus is a variant of Granite Speech that enhances the projector by consuming the concatenation of the encoder's final hidden states with an arbitrary subset of its intermediate hidden states along the feature dimension. It is a multimodal speech-to-text model that can transcribe audio, provide speaker annotation and word level timestamps by responding to text prompts. The model inherits the same architecture components as Granite Speech including the speech encoder, query transformer projector, language model, and optional LoRA adapter.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granite_speech_plus\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for a new Granite-Speech-Plus model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45695\"\u003e#45695\u003c/a\u003e) by \u003ca href=\"https://github.com/zvik\"\u003e\u003ccode\u003e@​zvik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45695\"\u003e#45695\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGranite4Vision\u003c/h3\u003e\n\u003cp\u003eGranite Vision 4.1 is a vision-language model from IBM Research designed for enterprise-grade document data extraction. It specializes in chart extraction (Chart2CSV, Chart2Summary, Chart2Code), table extraction (JSON, HTML, OTSL), and semantic key-value pair extraction. The model builds on LLaVA-NeXT with architectural innovations including SigLIP2 Vision Encoder, Window Q-Former Projectors, and DeepStack Feature Injection with 8 vision-to-LLM injection points.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granite4_vision\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Granite 4.1 Vision (granite4_vision) (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45597\"\u003e#45597\u003c/a\u003e) by \u003ca href=\"https://github.com/artem-spector\"\u003e\u003ccode\u003e@​artem-spector\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45597\"\u003e#45597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cc832f9055ba11c8c55f918ab4bda9472b910d48\"\u003e\u003ccode\u003ecc832f9\u003c/code\u003e\u003c/a\u003e up\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f966d7b36278c7ca15967af062c4556f8bf4eea4\"\u003e\u003ccode\u003ef966d7b\u003c/code\u003e\u003c/a\u003e Deepseek v4 csa mask collapse (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45928\"\u003e#45928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/283f3f08614c0ee09e0bdc60d57dbc4d8d37af39\"\u003e\u003ccode\u003e283f3f0\u003c/code\u003e\u003c/a\u003e Fix deepseek v4 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45892\"\u003e#45892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4e0be9c4c5f2edb62f2e28c28c4149d3b84a3ae0\"\u003e\u003ccode\u003e4e0be9c\u003c/code\u003e\u003c/a\u003e Fix WeightConverter regex incorrectly matching shared_experts as experts in D...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/ec852625706cbe9a1264949659dad82b43fafa57\"\u003e\u003ccode\u003eec85262\u003c/code\u003e\u003c/a\u003e [fix] Add \u003ccode\u003efatal_error\u003c/code\u003e to \u003ccode\u003eContinuousBatchingManager\u003c/code\u003e so the serving layer c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/049d2bf1220747b6d39e2a978b9f5fe0defa1dca\"\u003e\u003ccode\u003e049d2bf\u003c/code\u003e\u003c/a\u003e v5.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/2871cafffb3b221b5f1df7e59033a15a7830309f\"\u003e\u003ccode\u003e2871caf\u003c/code\u003e\u003c/a\u003e Add Granite 4.1 Vision (granite4_vision) (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45597\"\u003e#45597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/aaec1092d413d0ea7249101ea43f74b5d6d60936\"\u003e\u003ccode\u003eaaec109\u003c/code\u003e\u003c/a\u003e fix: correct spelling in continuous_api docstring (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45749\"\u003e#45749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/7050d0e0bf5a97c7c0149c319681601373621eae\"\u003e\u003ccode\u003e7050d0e\u003c/code\u003e\u003c/a\u003e Fix link to modular transformers documentation (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45746\"\u003e#45746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/df2f2b539902c78db6a0f71fb2c175880e390576\"\u003e\u003ccode\u003edf2f2b5\u003c/code\u003e\u003c/a\u003e Gemma4: fix failed test cases (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45568\"\u003e#45568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.128.0 to 0.136.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.0...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.0 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.4/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Django] Pass correct registry to MultiProcessCollector by \u003ca href=\"https://github.com/jelly\"\u003e\u003ccode\u003e@​jelly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1152\"\u003eprometheus/client_python#1152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an AIOHTTP exporter by \u003ca href=\"https://github.com/Lexicality\"\u003e\u003ccode\u003e@​Lexicality\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1139\"\u003eprometheus/client_python#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd remove_matching() method for metric label deletion by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1121\"\u003eprometheus/client_python#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(multiprocess): avoid double-building child metric names (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1035\"\u003e#1035\u003c/a\u003e) by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1146\"\u003eprometheus/client_python#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't interleave histogram metrics in multi-process collector by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1148\"\u003eprometheus/client_python#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax registry type annotations for exposition by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1149\"\u003eprometheus/client_python#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded compression support in pushgateway by \u003ca href=\"https://github.com/ritesh-avesha\"\u003e\u003ccode\u003e@​ritesh-avesha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1144\"\u003eprometheus/client_python#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) by \u003ca href=\"https://github.com/Chadys\"\u003e\u003ccode\u003e@​Chadys\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1143\"\u003eprometheus/client_python#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1134\"\u003eprometheus/client_python#1134\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003c...\n\n_Description has been truncated_","html_url":"https://github.com/vllm-project/vllm/pull/42717","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vllm-project%2Fvllm/issues/42717","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/42717/packages"},{"uuid":"4374224451","node_id":"PR_kwDOI7xefs7X4umm","number":41606,"state":"closed","title":"Bump the minor-update group across 1 directory with 140 updates","user":"dependabot[bot]","labels":["rocm","ci/build","nvidia","dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-05T23:42:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-04T05:33:52.000Z","updated_at":"2026-05-05T23:42:43.000Z","time_to_close":151729,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":140,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.4.4","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"transformers","old_version":"5.5.3","new_version":"5.7.0","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"filelock","old_version":"3.16.1","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"alembic","old_version":"1.16.4","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.40.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.2.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.8","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.3","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.3","repository_url":"https://github.com/boto/botocore"},{"name":"click","old_version":"8.1.7","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.2.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.5.4","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.2.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.2.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.62.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.50.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.5.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.8.2","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.74.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.80.0"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"harfile","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.13.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.152.4","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.12.0","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.13","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librosa","old_version":"0.10.2.post1","new_version":"0.11.0","repository_url":"https://github.com/librosa/librosa"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.12.30","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.4.1.1"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.2.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.2.75"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.21.1.3"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.2.0.46"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.17.1.22"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.0.1"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.7.10.1"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.30.4"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.2.75"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.19.1","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.2.1","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.40.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.4.1","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.27.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.46.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.0","repository_url":"https://github.com/getsentry/responses"},{"name":"rpds-py","old_version":"0.20.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.17.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"safetensors","old_version":"0.4.5","new_version":"0.7.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.4.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smart-open","old_version":"7.1.0","new_version":"7.6.0","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"structlog","old_version":"25.4.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.68.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.25.1","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.28.2","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xxhash","old_version":"3.5.0","new_version":"3.7.0","repository_url":"https://github.com/ifduyue/python-xxhash"},{"name":"yarl","old_version":"1.17.1","new_version":"1.23.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 140 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.4.4` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.33.1` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.7.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.136.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.3` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.25.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.29.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.4.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.18.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.13.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.6.3` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.40.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.2.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.8` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.3` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.3` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.5` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.2.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.5.4` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.2.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.56.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.0` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.2.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.62.1` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.30.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.2` | `2.50.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.5.1` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.10.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.8.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.74.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.4.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.13.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.15.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.152.4` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.13` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [librosa](https://github.com/librosa/librosa) | `0.10.2.post1` | `0.11.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.36.0` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.12.30` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.4.1.1` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.2.75` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.21.1.3` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.2.0.46` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.17.1.22` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.0.1` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.7.10.1` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.30.4` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.19.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.2.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.9.6` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.40.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.4.1` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.27.2` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.46.3` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.20.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.1` | `0.30.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.17.0` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.4.5` | `0.7.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.4.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.1.0` | `7.6.0` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.13.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.4.0` | `25.5.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.68.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.25.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.46.0` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.28.2` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.7.0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.5.0` | `3.7.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.23.0` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.4.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.7.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eLaguna\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eLaguna is Poolside's mixture-of-experts language model family that extends standard SwiGLU MoE transformers with two key innovations. It features per-layer head counts allowing different decoder layers to have different query-head counts while sharing the same KV cache shape, and implements a sigmoid MoE router with auxiliary-loss-free load balancing that uses element-wise sigmoid of gate logits plus learned per-expert bias for router scoring.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/laguna\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLaguna XS.2 implementation (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45673\"\u003e#45673\u003c/a\u003e) by \u003ca href=\"https://github.com/joerowell\"\u003e\u003ccode\u003e@​joerowell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45673\"\u003e#45673\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDEIMv2\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eDEIMv2 (DETR with Improved Matching v2) is a real-time object detection model that extends DEIM with DINOv3 features and spans eight model sizes from X to Atto for diverse deployment scenarios. It uses a Spatial Tuning Adapter (STA) for larger variants to convert DINOv3's single-scale output into multi-scale features, while ultra-lightweight models employ pruned HGNetv2 backbones. The unified design achieves superior performance-cost trade-offs, with DEIMv2-X reaching 57.8 AP with only 50.3M parameters and DEIMv2-S being the first sub-10M model to exceed 50 AP on COCO.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/deimv2\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/papers/2509.20787\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003emodel: Add DEIMv2 to Transformers (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44339\"\u003e#44339\u003c/a\u003e) by \u003ca href=\"https://github.com/harshaljanjani\"\u003e\u003ccode\u003e@​harshaljanjani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/44339\"\u003e#44339\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAttention\u003c/h2\u003e\n\u003cp\u003eSeveral attention-related bugs were fixed across multiple models, including a cross-attention cache type error in T5Gemma2 for long inputs, incorrect cached forward behavior in Qwen3.5's gated-delta-net linear attention, and a crash in GraniteMoeHybrid when no Mamba layers are present. Attention function dispatch was also updated to align with the latest model implementations.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix cross-attention cache layer type for T5Gemma2 long inputs (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45540\"\u003e#45540\u003c/a\u003e) by \u003ca href=\"https://github.com/Beichen-Ma\"\u003e\u003ccode\u003e@​Beichen-Ma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45540\"\u003e#45540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Qwen3.5] Fix GDN linear attention multi-token cached forward (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45513\"\u003e#45513\u003c/a\u003e) by \u003ca href=\"https://github.com/kashif\"\u003e\u003ccode\u003e@​kashif\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45513\"\u003e#45513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GraniteMoeHybrid _update_mamba_mask crash on attention-only models (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45514\"\u003e#45514\u003c/a\u003e) by \u003ca href=\"https://github.com/tianhaocui\"\u003e\u003ccode\u003e@​tianhaocui\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45514\"\u003e#45514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlign latest model attention function dispatch (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45598\"\u003e#45598\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45598\"\u003e#45598\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTokenizers\u003c/h2\u003e\n\u003cp\u003eThere was a bug in AutoTokenizer that caused the wrong tokenizer class to be initialized. This caused regressions in models like DeepSeek R1.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003echange got reverted (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45680\"\u003e#45680\u003c/a\u003e) by \u003ca href=\"https://github.com/itazap\"\u003e\u003ccode\u003e@​itazap\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45680\"\u003e#45680\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGeneration\u003c/h2\u003e\n\u003cp\u003eContinuous batching generation received several fixes and improvements, including correcting KV deduplication and memory estimation for long sequences (16K+), and removing misleading warnings about \u003ccode\u003enum_return_sequences\u003c/code\u003e and other unsupported features that were incorrectly firing even when functionality worked correctly. Documentation for per-request sampling parameters was also added.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003egenerate: drop stale num_return_sequences warning on continuous batching path (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45582\"\u003e#45582\u003c/a\u003e) by \u003ca href=\"https://github.com/joaquinhuigomez\"\u003e\u003ccode\u003e@​joaquinhuigomez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45582\"\u003e#45582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/6ffbb07f93d9e44457450d1150136309b0dc966b\"\u003e\u003ccode\u003e6ffbb07\u003c/code\u003e\u003c/a\u003e v5.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/18e7fd752e6fa7dd4ff8b828ff8f3aec5b0882ae\"\u003e\u003ccode\u003e18e7fd7\u003c/code\u003e\u003c/a\u003e change got reverted (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45680\"\u003e#45680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/2dff8f76f48abd7dd31b8dc156046509887d3cf1\"\u003e\u003ccode\u003e2dff8f7\u003c/code\u003e\u003c/a\u003e v5.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93bed93e7518444cce442a89c78008fa0a21c963\"\u003e\u003ccode\u003e93bed93\u003c/code\u003e\u003c/a\u003e fixing more typos (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45689\"\u003e#45689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/a29e9675a864e2c7854a4d0f574589a8db1dac2e\"\u003e\u003ccode\u003ea29e967\u003c/code\u003e\u003c/a\u003e [docs] cb memory management (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45587\"\u003e#45587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/2d01799735d455f745b9c53d5a9d2eebdd7be569\"\u003e\u003ccode\u003e2d01799\u003c/code\u003e\u003c/a\u003e [docs] cpu offloading (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45660\"\u003e#45660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4aba7167e328965caadcdfc6834b982037889f86\"\u003e\u003ccode\u003e4aba716\u003c/code\u003e\u003c/a\u003e docs(README_zh-hans): clarify conditions for not using Transformers (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45688\"\u003e#45688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f4fc6d013864f5389b6518787438cf55359613d1\"\u003e\u003ccode\u003ef4fc6d0\u003c/code\u003e\u003c/a\u003e fix padding side issue for fast_vlm tests (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45592\"\u003e#45592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5d7ff4393ab99aa7cadf4cccd1f814dbb799f2bb\"\u003e\u003ccode\u003e5d7ff43\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ex_clip\u003c/code\u003e: 8 failed test cases (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45394\"\u003e#45394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/aadc005711da266af1f75c33185172af9d9f19bf\"\u003e\u003ccode\u003eaadc005\u003c/code\u003e\u003c/a\u003e zero_shot_object_detection ValueError fix for python 3.13 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45669\"\u003e#45669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.128.0 to 0.136.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.0...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.0 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Django] Pass correct registry to MultiProcessCollector by \u003ca href=\"https://github.com/jelly\"\u003e\u003ccode\u003e@​jelly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1152\"\u003eprometheus/client_python#1152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an AIOHTTP exporter by \u003ca href=\"https://github.com/Lexicality\"\u003e\u003ccode\u003e@​Lexicality\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1139\"\u003eprometheus/client_python#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd remove_matching() method for metric label deletion by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1121\"\u003eprometheus/client_python#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(multiprocess): avoid double-building child metric names (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1035\"\u003e#1035\u003c/a\u003e) by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1146\"\u003eprometheus/client_python#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't interleave histogram metrics in multi-process collector by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1148\"\u003eprometheus/client_python#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax registry type annotations for exposition by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1149\"\u003eprometheus/client_python#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded compression support in pushgateway by \u003ca href=\"https://github.com/ritesh-avesha\"\u003e\u003ccode\u003e@​ritesh-avesha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1144\"\u003eprometheus/client_python#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) by \u003ca href=\"https://github.com/Chadys\"\u003e\u003ccode\u003e@​Chadys\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1143\"\u003eprometheus/client_python#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1134\"\u003eprometheus/client_python#1134\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.22.1...v0.23.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.22.1...v0.23.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/2cd1738fb880fd0e6aa9a02ec48585128388a6cd\"\u003e\u003ccode\u003e2cd1738\u003c/code\u003e\u003c/a\u003e Release 0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/daa1626eaf705318013b708954499b0a049088c8\"\u003e\u003ccode\u003edaa1626\u003c/code\u003e\u003c/a\u003e docs: add API reference for all metric types  (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1159\"\u003e#1159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/8673912276bdca7ddbca5d163eb11422b546bffb\"\u003e\u003ccode\u003e8673912\u003c/code\u003e\u003c/a\u003e Support MultiProcessCollector in RestrictedRegistry. (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1150\"\u003e#1150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/671f75c6f1f04838995fadd57cda21beee01838b\"\u003e\u003ccode\u003e671f75c\u003c/code\u003e\u003c/a\u003e Fix spaces in grouping key values for push_to_gateway (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/1cf53feae63b6ecb0bd76eee80582a0fba957e09\"\u003e\u003ccode\u003e1cf53fe\u003c/code\u003e\u003c/a\u003e Fix server shutdown documentation (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/a8541354519d04852d24688845f1d2d495eef59c\"\u003e\u003ccode\u003ea854135\u003c/code\u003e\u003c/a\u003e Migrate to Github Actions (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/f417f6ea8f058165a1934e368fed245e91aafc14\"\u003e\u003ccode\u003ef417f6e\u003c/code\u003e\u003c/a\u003e Release 0.24.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/6f0e967c1f7a408b75861d6833a8d303874be95d\"\u003e\u003ccode\u003e6f0e967\u003c/code\u003e\u003c/a\u003e Pass correct registry to MultiProcessCollector (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/c5024d310fbfcba45a5e9db62e337a3a7930ea16\"\u003e\u003ccode\u003ec5024d3\u003c/code\u003e\u003c/a\u003e Release 0.24.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/e1cdc203b1cf5f15c7b9a64d79fccc7907a62ca3\"\u003e\u003ccode\u003ee1cdc20\u003c/code\u003e\u003c/a\u003e Add Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"...\n\n_Description has been truncated_","html_url":"https://github.com/vllm-project/vllm/pull/41606","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vllm-project%2Fvllm/issues/41606","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/41606/packages"},{"uuid":"4373502248","node_id":"PR_kwDOPWxxeM7X2cNd","number":21,"state":"closed","title":"Bump the minor-update group across 1 directory with 12 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-18T01:29:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-04T01:13:35.000Z","updated_at":"2026-05-18T01:29:44.000Z","time_to_close":1210567,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":12,"packages":[{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"xgrammar","old_version":"0.1.16","new_version":"0.2.0","repository_url":"https://github.com/mlc-ai/xgrammar"},{"name":"depyf","old_version":"0.18.0","new_version":"0.20.0","repository_url":"https://github.com/thuml/depyf"},{"name":"numba","old_version":"0.60.0","new_version":"0.61.2","repository_url":"https://github.com/numba/numba"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"triton","old_version":"3.1.0","new_version":"3.7.0+gitb4e20bbe"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx-book-theme","old_version":"1.0.1","new_version":"1.1.4","repository_url":"https://github.com/executablebooks/sphinx-book-theme"},{"name":"sphinx-togglebutton","old_version":"0.3.2","new_version":"0.4.5","repository_url":"https://github.com/executablebooks/sphinx-togglebutton"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 12 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [xgrammar](https://github.com/mlc-ai/xgrammar) | `0.1.16` | `0.2.0` |\n| [depyf](https://github.com/thuml/depyf) | `0.18.0` | `0.20.0` |\n| [numba](https://github.com/numba/numba) | `0.60.0` | `0.61.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.4.0` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| triton | `3.1.0` | `3.7.0+gitb4e20bbe` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.3.0` |\n| [sphinx-book-theme](https://github.com/executablebooks/sphinx-book-theme) | `1.0.1` | `1.1.4` |\n| [sphinx-togglebutton](https://github.com/executablebooks/sphinx-togglebutton) | `0.3.2` | `0.4.5` |\n\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xgrammar` from 0.1.16 to 0.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mlc-ai/xgrammar/releases\"\u003exgrammar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor: unify reasoning parameter and rename model keys by \u003ca href=\"https://github.com/Ubospica\"\u003e\u003ccode\u003e@​Ubospica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/609\"\u003emlc-ai/xgrammar#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: fix gpt-oss's tool-calling format. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/607\"\u003emlc-ai/xgrammar#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add Perplexity collaborator logo by \u003ca href=\"https://github.com/Ubospica\"\u003e\u003ccode\u003e@​Ubospica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/612\"\u003emlc-ai/xgrammar#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose draft tree traversal on GrammarMatcher by \u003ca href=\"https://github.com/Ubospica\"\u003e\u003ccode\u003e@​Ubospica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/613\"\u003emlc-ai/xgrammar#613\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: reduce structural-tag compile time at high tool count by \u003ca href=\"https://github.com/Ubospica\"\u003e\u003ccode\u003e@​Ubospica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/616\"\u003emlc-ai/xgrammar#616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: align builtin structural tags with chat templates for reasoning and tool calls by \u003ca href=\"https://github.com/Ubospica\"\u003e\u003ccode\u003e@​Ubospica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/610\"\u003emlc-ai/xgrammar#610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erelease: bump version to 0.2.0 by \u003ca href=\"https://github.com/Ubospica\"\u003e\u003ccode\u003e@​Ubospica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/619\"\u003emlc-ai/xgrammar#619\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/mlc-ai/xgrammar/compare/v0.1.34...v0.2.0\"\u003ehttps://github.com/mlc-ai/xgrammar/compare/v0.1.34...v0.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.1.34\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReapply \u0026quot;refactor: migrate the binding logic into \u003ccode\u003etvm_ffi\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/550\"\u003e#550\u003c/a\u003e)\u0026quot;\u0026quot; by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/576\"\u003emlc-ai/xgrammar#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: accept {n, -1} as unbounded repeat in EBNF parser by \u003ca href=\"https://github.com/ushiromiya-lion\"\u003e\u003ccode\u003e@​ushiromiya-lion\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/579\"\u003emlc-ai/xgrammar#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: AnyTokensFormat with exclude_tokens should be treated as self-terminating by \u003ca href=\"https://github.com/ushiromiya-lion\"\u003e\u003ccode\u003e@​ushiromiya-lion\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/578\"\u003emlc-ai/xgrammar#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: fix the building of the website. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/582\"\u003emlc-ai/xgrammar#582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc: update the citation part of the readme. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/583\"\u003emlc-ai/xgrammar#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefac: remove the restriction of \u003ccode\u003eunlimited\u003c/code\u003e. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/585\"\u003emlc-ai/xgrammar#585\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add builtin structural tag support for Gemma 4 models by \u003ca href=\"https://github.com/leuski\"\u003e\u003ccode\u003e@​leuski\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/588\"\u003emlc-ai/xgrammar#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: auto-skip HuggingFace tests when HF_TOKEN is not set by \u003ca href=\"https://github.com/ianliuy\"\u003e\u003ccode\u003e@​ianliuy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/589\"\u003emlc-ai/xgrammar#589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix the broken link of api/python/builtin_structural_tag. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/592\"\u003emlc-ai/xgrammar#592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: rewrite structural tag tutorial with clearer structure by \u003ca href=\"https://github.com/Ubospica\"\u003e\u003ccode\u003e@​Ubospica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/590\"\u003emlc-ai/xgrammar#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: disable the unit test with python3.14t and macOS-14. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/598\"\u003emlc-ai/xgrammar#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: support \u003ccode\u003etool_choice\u003c/code\u003e for \u003ccode\u003eget_builtin_structural_tag\u003c/code\u003e. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/586\"\u003emlc-ai/xgrammar#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix structural tag validation and rename builtin tests by \u003ca href=\"https://github.com/Ubospica\"\u003e\u003ccode\u003e@​Ubospica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/601\"\u003emlc-ai/xgrammar#601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: fix the type compatibility. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/602\"\u003emlc-ai/xgrammar#602\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: disable the use of hf_token when \u003ccode\u003enot hf_token_required\u003c/code\u003e is explicitly passed. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/604\"\u003emlc-ai/xgrammar#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: support DeepSeek_v4's tool calling format. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/596\"\u003emlc-ai/xgrammar#596\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: fix the DeepSeek_R1's built-in tool-calling format. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/597\"\u003emlc-ai/xgrammar#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: support Qwen3.6's tool-calling format. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/603\"\u003emlc-ai/xgrammar#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump to v0.1.34. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/605\"\u003emlc-ai/xgrammar#605\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNote\u003c/h2\u003e\n\u003cp\u003eThe builtin structural tag in this version is experimental, and the API is subject to change before the next version.\u003c/p\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leuski\"\u003e\u003ccode\u003e@​leuski\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/588\"\u003emlc-ai/xgrammar#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ianliuy\"\u003e\u003ccode\u003e@​ianliuy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/589\"\u003emlc-ai/xgrammar#589\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/mlc-ai/xgrammar/compare/v0.1.33...v0.1.34\"\u003ehttps://github.com/mlc-ai/xgrammar/compare/v0.1.33...v0.1.34\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.1.33\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor: simplify TagDispatch by removing stop_eos and stop_str by \u003ca href=\"https://github.com/Ubospica\"\u003e\u003ccode\u003e@​Ubospica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/554\"\u003emlc-ai/xgrammar#554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: provide \u003ccode\u003ePlusFormat\u003c/code\u003e, \u003ccode\u003eOptionalFormat\u003c/code\u003e, \u003ccode\u003eStarFormat\u003c/code\u003e to enhance \u003ccode\u003eStructuralTag\u003c/code\u003e. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/557\"\u003emlc-ai/xgrammar#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: support \u003ccode\u003estructural_tag\u003c/code\u003e-level cache. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/553\"\u003emlc-ai/xgrammar#553\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/mlc-ai/xgrammar/commit/5433fdbea7003eea61cb863768a05fb8da3bf919\"\u003e\u003ccode\u003e5433fdb\u003c/code\u003e\u003c/a\u003e release: bump version to 0.2.0 (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/619\"\u003e#619\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlc-ai/xgrammar/commit/c1eceb68a4d2cd366ce35cf10dfe4cf1e1e33ab2\"\u003e\u003ccode\u003ec1eceb6\u003c/code\u003e\u003c/a\u003e fix: align builtin structural tags with chat templates for reasoning and tool...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlc-ai/xgrammar/commit/96ae88b19284eb543748619cac552dab1f49b213\"\u003e\u003ccode\u003e96ae88b\u003c/code\u003e\u003c/a\u003e perf: reduce structural-tag compile time at high tool count (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/616\"\u003e#616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlc-ai/xgrammar/commit/fc9b5daa6cb2447da010e991bf9ece64349371e5\"\u003e\u003ccode\u003efc9b5da\u003c/code\u003e\u003c/a\u003e Expose draft tree traversal on GrammarMatcher (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/613\"\u003e#613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlc-ai/xgrammar/commit/1912de23292735af6533e6380c38ee291dbc1ba6\"\u003e\u003ccode\u003e1912de2\u003c/code\u003e\u003c/a\u003e docs: add Perplexity collaborator logo (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlc-ai/xgrammar/commit/dba71b091b2406e3833affc81d48e125bded9796\"\u003e\u003ccode\u003edba71b0\u003c/code\u003e\u003c/a\u003e fix: fix gpt-oss's tool-calling format. (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/607\"\u003e#607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlc-ai/xgrammar/commit/0abebf79649171695cb2b73a543a66c2c9eca2b9\"\u003e\u003ccode\u003e0abebf7\u003c/code\u003e\u003c/a\u003e refactor: unify reasoning parameter and rename model keys (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlc-ai/xgrammar/commit/d68df627908376f3ed5e0a989395a03cc41894cd\"\u003e\u003ccode\u003ed68df62\u003c/code\u003e\u003c/a\u003e Bump to v0.1.34. (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/605\"\u003e#605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlc-ai/xgrammar/commit/382e730542ca8321b7361529505a40ae0ebcbe52\"\u003e\u003ccode\u003e382e730\u003c/code\u003e\u003c/a\u003e feat: support Qwen3.6's tool-calling format. (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/603\"\u003e#603\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlc-ai/xgrammar/commit/d76254b726272ec3ba37f2531064a7c024a075b8\"\u003e\u003ccode\u003ed76254b\u003c/code\u003e\u003c/a\u003e fix: fix the DeepSeek_R1's built-in tool-calling format. (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mlc-ai/xgrammar/compare/v0.1.16...v0.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `depyf` from 0.18.0 to 0.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/thuml/depyf/releases\"\u003edepyf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.19.0 release with recent improvements\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd device to imports by \u003ca href=\"https://github.com/ProExpertProg\"\u003e\u003ccode\u003e@​ProExpertProg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/82\"\u003ethuml/depyf#82\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing default argument values in \u003ccode\u003epatched_load_by_key_path\u003c/code\u003e by \u003ca href=\"https://github.com/nopperl\"\u003e\u003ccode\u003e@​nopperl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/81\"\u003ethuml/depyf#81\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate test files by \u003ca href=\"https://github.com/youkaichao\"\u003e\u003ccode\u003e@​youkaichao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/83\"\u003ethuml/depyf#83\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy instruction by \u003ca href=\"https://github.com/youkaichao\"\u003e\u003ccode\u003e@​youkaichao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/84\"\u003ethuml/depyf#84\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/ProExpertProg\"\u003e\u003ccode\u003e@​ProExpertProg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/82\"\u003ethuml/depyf#82\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nopperl\"\u003e\u003ccode\u003e@​nopperl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/81\"\u003ethuml/depyf#81\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/thuml/depyf/compare/v0.18.0...v0.19.0\"\u003ehttps://github.com/thuml/depyf/compare/v0.18.0...v0.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/thuml/depyf/commit/b67e16787e8c66324e114b4f2c6024438385b242\"\u003e\u003ccode\u003eb67e167\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/91ea66d5feca12392ba9c45a08094d948514343d\"\u003e\u003ccode\u003e91ea66d\u003c/code\u003e\u003c/a\u003e update test files (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/88\"\u003e#88\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/4fd2d58b0f6361f4c39aaf26e98b94049b7e6dd6\"\u003e\u003ccode\u003e4fd2d58\u003c/code\u003e\u003c/a\u003e bugfix for list extend with argval != 1 and add DEPYF_REMOVE_TEMP env var (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/87\"\u003e#87\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/2612c16584d7360a511044a313eac02e15f46831\"\u003e\u003ccode\u003e2612c16\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/e379286a302abde2808d249ba186bbe7a8235cc0\"\u003e\u003ccode\u003ee379286\u003c/code\u003e\u003c/a\u003e fix copy instruction (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/5cde94f8fe9446c56ccb19df71dc9f887d4f948a\"\u003e\u003ccode\u003e5cde94f\u003c/code\u003e\u003c/a\u003e update test files (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/83\"\u003e#83\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/461af54b38e07df88c33f5da81970bfc82eaa325\"\u003e\u003ccode\u003e461af54\u003c/code\u003e\u003c/a\u003e Add missing default argument values in \u003ccode\u003epatched_load_by_key_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/81\"\u003e#81\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/3c95e7ac95e133bce7ef8bf6f609dda2e8f331bf\"\u003e\u003ccode\u003e3c95e7a\u003c/code\u003e\u003c/a\u003e Add device to imports (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/thuml/depyf/compare/v0.18.0...v0.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numba` from 0.60.0 to 0.61.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numba/numba/releases\"\u003enumba's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eNumba 0.61.2\u003c/h2\u003e\n\u003cp\u003eMinor Numba release adding NumPy 2.2 support. View detailed release notes and changelog \u003ca href=\"https://numba.readthedocs.io/en/stable/release/0.61.2-notes.html\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eNumba 0.61.0\u003c/h2\u003e\n\u003cp\u003eMajor Numba release adding Python 3.13 and NumPy 2.1 support. View detailed release notes and changelog \u003ca href=\"https://numba.readthedocs.io/en/stable/release/0.61.0-notes.html\"\u003ehere\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/numba/numba/commit/1e70d8ceba56a135e046e32e1e7ad2fcd22fd8ab\"\u003e\u003ccode\u003e1e70d8c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numba/numba/issues/10032\"\u003e#10032\u003c/a\u003e from kc611/release0.61\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/746eb866a4a976ee0e9ba7cf5d9853ff74d2b908\"\u003e\u003ccode\u003e746eb86\u003c/code\u003e\u003c/a\u003e Changed release target to 0.61.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/12cb3e8fafc5b0bc331cb4c1ea703e305e4302ff\"\u003e\u003ccode\u003e12cb3e8\u003c/code\u003e\u003c/a\u003e Updated dates in version support table and release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/6aa65a8dacdac72fb19d47e6606abdb2a5ed5c27\"\u003e\u003ccode\u003e6aa65a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numba/numba/issues/10028\"\u003e#10028\u003c/a\u003e from swap357/update_release_notes_0.61.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/48ab6b115c424d3e0d65f8431e9f210c54deaf47\"\u003e\u003ccode\u003e48ab6b1\u003c/code\u003e\u003c/a\u003e update release notes to exclude 0.61.0 PRs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/d788b465371b76597ffa67d16792be0a5e21bf23\"\u003e\u003ccode\u003ed788b46\u003c/code\u003e\u003c/a\u003e update release-notes with PRs and authors list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/f2210fa2801807a9f88ed4d725df186014e18af5\"\u003e\u003ccode\u003ef2210fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numba/numba/issues/9999\"\u003e#9999\u003c/a\u003e from kc611/release0.61\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/d91b9366a7d99dc40f79ce88072c390100e1c416\"\u003e\u003ccode\u003ed91b936\u003c/code\u003e\u003c/a\u003e Added formatting changes in release message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/a22acbd59146f0960c9b0bd28a636fe1f18d862f\"\u003e\u003ccode\u003ea22acbd\u003c/code\u003e\u003c/a\u003e Updated release notes message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/bf0eadcf69496a89d6252257020c6ecdb4aa00ff\"\u003e\u003ccode\u003ebf0eadc\u003c/code\u003e\u003c/a\u003e Update docs/source/release/0.61.1-notes.rst\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numba/numba/compare/0.60.0...0.61.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `audioread` from 3.0.1 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/fdd0c2e7f20f3a9b9110c454a140108097236268\"\u003e\u003ccode\u003efdd0c2e\u003c/code\u003e\u003c/a\u003e Increment version to 3.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ec7b3bcb29781132b58affd1053d63da64ed9383\"\u003e\u003ccode\u003eec7b3bc\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13 (\u003ca href=\"https://redirect.github.com/beetbox/audioread/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/bfee9a74d6c389a4d60053cf1d1c6af580fae2e6\"\u003e\u003ccode\u003ebfee9a7\u003c/code\u003e\u003c/a\u003e run tests on python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/b671e436cf5c0c6006f190e3561fc680773237be\"\u003e\u003ccode\u003eb671e43\u003c/code\u003e\u003c/a\u003e Add standard-aifc and standard-sunau as dependencies for python 3.13 and above.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ef77a506b641cdeca11b1e782105e29f8f93eb81\"\u003e\u003ccode\u003eef77a50\u003c/code\u003e\u003c/a\u003e Remove legacy url\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/f13b2a2d5d59c683107eb7d9df35c54f1a2c1820\"\u003e\u003ccode\u003ef13b2a2\u003c/code\u003e\u003c/a\u003e Try using proper pypi repo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/84cd1272d498346449c972b046621b3c54d60c08\"\u003e\u003ccode\u003e84cd127\u003c/code\u003e\u003c/a\u003e Increment version to 3.1.0a1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/208562b078770dc373eb9a44554b44d8f1402773\"\u003e\u003ccode\u003e208562b\u003c/code\u003e\u003c/a\u003e Modernize package setup (\u003ca href=\"https://redirect.github.com/beetbox/audioread/issues/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/6da161102578169ce964e05b83cd5c2e8bb8e6c7\"\u003e\u003ccode\u003e6da1611\u003c/code\u003e\u003c/a\u003e Add release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ee7afcf55ae0d760a04db269e2dce6e0adb9cfd4\"\u003e\u003ccode\u003eee7afcf\u003c/code\u003e\u003c/a\u003e Modernize package setup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beetbox/audioread/compare/v3.0.1...v3.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lazy-loader` from 0.4 to 0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scientific-python/lazy-loader/releases\"\u003elazy-loader's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.5\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003esuppress_warning\u003c/code\u003e parameter to the \u003ccode\u003eload\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/146\"\u003e#146\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Remove problematic try/finally block (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/137\"\u003e#137\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake sure that \u003ccode\u003e__dir__\u003c/code\u003e returns new copies of \u003ccode\u003e__all__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/135\"\u003e#135\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow disabled eager loading with EAGER_IMPORT=0 (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/166\"\u003e#166\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate release process doc (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/105\"\u003e#105\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAddress a few more places that used the old spelling (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/130\"\u003e#130\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.7 support (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/106\"\u003e#106\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate ruff config (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/110\"\u003e#110\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate label check action (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/112\"\u003e#112\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBump pre-commit from 3.7.0 to 3.7.1 (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/118\"\u003e#118\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRename repo to match package name (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/119\"\u003e#119\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eTest on Python 3.13 development releases (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/120\"\u003e#120\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/122\"\u003e#122\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate ruff config (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/123\"\u003e#123\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate GH actions (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/124\"\u003e#124\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd codespell pre-commit (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/125\"\u003e#125\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate pytest config (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/126\"\u003e#126\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBump pre-commit from 3.7.1 to 3.8.0 in the actions group (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/129\"\u003e#129\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBump pre-commit from 3.8.0 to 4.0.1 in the actions group (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/132\"\u003e#132\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit (12/2024) (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/138\"\u003e#138\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSupport Python 3.13 (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/139\"\u003e#139\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 support (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/140\"\u003e#140\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/141\"\u003e#141\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBump pre-commit from 4.0.1 to 4.1.0 in the actions group (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/143\"\u003e#143\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBump codecov/codecov-action from 4 to 5 in the actions group (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/142\"\u003e#142\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBump scientific-python/attach-next-milestone-action from bc07be829f693829263e57d5e8489f4e57d3d420 to c9cfab10ad0c67fed91b01103db26b7f16634639 in the actions group (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/145\"\u003e#145\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003erf: Use list.copy() instead of list() (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBump pre-commit from 4.1.0 to 4.2.0 in the actions group (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/149\"\u003e#149\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/150\"\u003e#150\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSwitch to src layout, move tests to root (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/151\"\u003e#151\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate development status as Production/Stable (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/108\"\u003e#108\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd spin configuration (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/152\"\u003e#152\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003etest: Update test cases to get full coverage (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/153\"\u003e#153\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 in the actions group (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/157\"\u003e#157\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBump pre-commit from 4.2.0 to 4.3.0 in the actions group (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/156\"\u003e#156\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14 (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/158\"\u003e#158\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/154\"\u003e#154\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSet dependabot cooldown and schedule for 15th of each month (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/162\"\u003e#162\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/scientific-python/lazy-loader/blob/main/CHANGELOG.md\"\u003elazy-loader's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003elazy-loader 0.5\u003c/h1\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003esuppress_warning\u003c/code\u003e parameter to the \u003ccode\u003eload\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/146\"\u003e#146\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Remove problematic try/finally block (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/137\"\u003e#137\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake sure that \u003ccode\u003e__dir__\u003c/code\u003e returns new copies of \u003ccode\u003e__all__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/135\"\u003e#135\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow disabled eager loading with EAGER_IMPORT=0 (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/166\"\u003e#166\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate release process doc (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/105\"\u003e#105\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.7 support (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/106\"\u003e#106\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate ruff config (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/110\"\u003e#110\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate label check action (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/112\"\u003e#112\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRename repo to match package name (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/119\"\u003e#119\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eTest on Python 3.13 development releases (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/120\"\u003e#120\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/122\"\u003e#122\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate ruff config (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/123\"\u003e#123\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate GH actions (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/124\"\u003e#124\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd codespell pre-commit (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/125\"\u003e#125\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate pytest config (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/126\"\u003e#126\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit (12/2024) (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/138\"\u003e#138\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSupport Python 3.13 (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/139\"\u003e#139\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 support (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/140\"\u003e#140\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003erf: Use list.copy() instead of list() (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSwitch to src layout, move tests to root (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/151\"\u003e#151\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate development status as Production/Stable (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/108\"\u003e#108\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd spin configuration (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/152\"\u003e#152\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003etest: Update test cases to get full coverage (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/153\"\u003e#153\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14 (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/158\"\u003e#158\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSet dependabot cooldown and schedule for 15th of each month (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/162\"\u003e#162\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003e7 authors added to this release (alphabetically):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBrigitta Sipőcz (\u003ca href=\"https://github.com/bsipocz\"\u003e\u003ccode\u003e@​bsipocz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChris Markiewicz (\u003ca href=\"https://github.com/effigies\"\u003e\u003ccode\u003e@​effigies\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJarrod Millman (\u003ca href=\"https://github.com/jarrodmillman\"\u003e\u003ccode\u003e@​jarrodmillman\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLars Grüter (\u003ca href=\"https://github.com/lagru\"\u003e\u003ccode\u003e@​lagru\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMark Harfouche (\u003ca href=\"https://github.com/hmaarrfk\"\u003e\u003ccode\u003e@​hmaarrfk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOfek Lev (\u003ca href=\"https://github.com/ofek\"\u003e\u003ccode\u003e@​ofek\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStefan van der Walt (\u003ca href=\"https://github.com/stefanv\"\u003e\u003ccode\u003e@​stefanv\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/2566bebe6a36ecd0bc5dc5a69e8767f7e68fb6d0\"\u003e\u003ccode\u003e2566beb\u003c/code\u003e\u003c/a\u003e Designate 0.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/d6c33994ddbb3735a7633cec95cabf5d4468e648\"\u003e\u003ccode\u003ed6c3399\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/issues/166\"\u003e#166\u003c/a\u003e from stefanv/eager-disable-with-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/4aead86ebd5cf528d0acc4bac5b77b37d6397cd3\"\u003e\u003ccode\u003e4aead86\u003c/code\u003e\u003c/a\u003e Tiny clarification\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/0a9187b188a73c8a6390e5bce7d4e05242ec4ef7\"\u003e\u003ccode\u003e0a9187b\u003c/code\u003e\u003c/a\u003e Update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/16acc44bb9351c8306ac71fd543939a0b5a21b81\"\u003e\u003ccode\u003e16acc44\u003c/code\u003e\u003c/a\u003e Allow EAGER_IMPORT=\u0026quot;\u0026quot; to disable it\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/87815de0db1e43ba016042da6a4d616cfe489b70\"\u003e\u003ccode\u003e87815de\u003c/code\u003e\u003c/a\u003e Allow disabled eager loading with EAGER_IMPORT=0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/ccddd440c5e56dfd286004ae654c5581fbe38abb\"\u003e\u003ccode\u003eccddd44\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/issues/163\"\u003e#163\u003c/a\u003e from scientific-python/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/a988b6cfdabac9dc43d88c312fbe9b26d1248e5c\"\u003e\u003ccode\u003ea988b6c\u003c/code\u003e\u003c/a\u003e chore: Rerun prettier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/4d599c49e2c0cdadc21713aa89ea62ad8c8af3a8\"\u003e\u003ccode\u003e4d599c4\u003c/code\u003e\u003c/a\u003e chore: Use raw string for pytest.raises match regex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/cef6ab73cdf3440e0cf36c355ca9df9522e81b47\"\u003e\u003ccode\u003ecef6ab7\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/scientific-python/lazy-loader/compare/v0.4...v0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.3.6 to 4.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: improve homebrew path detection by \u003ca href=\"https://github.com/daeho-ro\"\u003e\u003ccode\u003e@​daeho-ro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/370\"\u003etox-dev/platformdirs#370\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/daeho-ro\"\u003e\u003ccode\u003e@​daeho-ro\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/370\"\u003etox-dev/platformdirs#370\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/platformdirs/compare/4.3.8...4.4.0\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing examples and fix order of examples in README by \u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\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/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\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/platformdirs/compare/4.3.7...4.3.8\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.7\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChunk dependabot updates into a single PR by \u003ca href=\"https://github.com/ofek\"\u003e\u003ccode\u003e@​ofek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/311\"\u003etox-dev/platformdirs#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/330\"\u003etox-dev/platformdirs#330\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/platformdirs/compare/4.3.6...4.3.7\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst\"\u003eplatformdirs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.6 (2026-04-09)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(release): use double quotes for tag variable expansion :pr:\u003ccode\u003e477\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.5 (2026-04-06)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs(appauthor): clarify None vs False on Windows :pr:\u003ccode\u003e476\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSeparates implementations of macOS dirs that share a default :pr:\u003ccode\u003e473\u003c/code\u003e - by :user:\u003ccode\u003eGoddesen\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove persist-credentials: false from release job :pr:\u003ccode\u003e472\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003efix: do not duplicate site dirs in Unix.iter_{config,site}_dirs() when use_site_for_root is active :pr:\u003ccode\u003e469\u003c/code\u003e - by\n:user:\u003ccode\u003eviccie30\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔧 fix(type): resolve ty 0.0.25 type errors :pr:\u003ccode\u003e468\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔒 ci(workflows): add zizmor security auditing :pr:\u003ccode\u003e467\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(release): generate docstrfmt-compatible changelog entries :pr:\u003ccode\u003e463\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.4 (2026-03-05)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e461\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README.md\u003c/li\u003e\n\u003cli\u003e📝 docs: add project logo to documentation :pr:\u003ccode\u003e459\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStandardize .github files to .yaml suffix\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump the all group with 2 updates :pr:\u003ccode\u003e457\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMove SECURITY.md to .github/SECURITY.md\u003c/li\u003e\n\u003cli\u003eAdd permissions to workflows :pr:\u003ccode\u003e455\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd security policy\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e454\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.2 (2026-02-16)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: restructure following Diataxis framework :pr:\u003ccode\u003e448\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs(platforms): fix RST formatting and TOC hierarchy :pr:\u003ccode\u003e447\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.1 (2026-02-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: enhance README, fix issues, and reorganize platforms.rst :pr:\u003ccode\u003e445\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/c945a28a2cd2ae34154540d144e7671ed80b1c10\"\u003e\u003ccode\u003ec945a28\u003c/code\u003e\u003c/a\u003e feat: improve homebrew path detection (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/9f616e954ee35621a75843fa40180cbd6fea2670\"\u003e\u003ccode\u003e9f616e9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/5720f26595056e11516d1167185ffde135e0aa55\"\u003e\u003ccode\u003e5720f26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/848924dfbec662829225a4a1108e1a818539304a\"\u003e\u003ccode\u003e848924d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/df2e678930d48ac0cb0b019da78a069dfbeae579\"\u003e\u003ccode\u003edf2e678\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/009a3f81879f356a7af0923c2ba443756b552e1c\"\u003e\u003ccode\u003e009a3f8\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/3d194ee7ef7ce2a021a2b5fbf77bbddd171ca9a1\"\u003e\u003ccode\u003e3d194ee\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/6046533d719a8871f5f8fc4fc99c01a14b282853\"\u003e\u003ccode\u003e6046533\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/88389cef8fce1da42858a621770ce4dee8f739f9\"\u003e\u003ccode\u003e88389ce\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/82763ff0c244c7ca7b4eaa4b4336be224b385389\"\u003e\u003ccode\u003e82763ff\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pooch` from 1.8.2 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fatiando/pooch/releases\"\u003epooch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased on: 2026/01/30\u003c/p\u003e\n\u003cp\u003eDOI: \u003ca href=\"https://doi.org/10.5281/zenodo.18379610\"\u003ehttps://doi.org/10.5281/zenodo.18379610\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBreaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/450\"\u003e#450\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExplicitly pass \u003ccode\u003efilter\u003c/code\u003e to \u003ccode\u003eTarFile.extractall\u003c/code\u003e on Python \u0026gt;=3.12 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/458\"\u003e#458\u003c/a\u003e). Pass a \u003ccode\u003efilter=\u0026quot;data\u0026quot;\u003c/code\u003e argument to \u003ccode\u003eTarFile.extractall\u003c/code\u003e to prevent dangerous security issues. The \u003ccode\u003efilter\u003c/code\u003e argument was added in Python 3.12, so only pass it on versions greater or equal than that. This change matches the default behaviour that will take place since Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix TQDM usage (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/465\"\u003e#465\u003c/a\u003e). Newer versions of tqdm behave differently at a terminal vs in a jupyter notebook. Import from \u003ccode\u003etqdm.auto\u003c/code\u003e instead so that the downloader looks right in either a notebook or the terminal.\u003c/li\u003e\n\u003cli\u003eFix bug in file hashing on FIPS enabled system (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/511\"\u003e#511\u003c/a\u003e). Set \u003ccode\u003euserforsecurity=False\u003c/code\u003e on \u003ccode\u003ehashlib\u003c/code\u003e hashing algorithms to make FIPS enabled systems happy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSet User-Agent in requests headers for DOI downloaders (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/507\"\u003e#507\u003c/a\u003e). Pass a custom User-Agent when making requests through DOI downloaders in order to bypass limit rates imposed by services like Zenodo to block abusive requests. The can now filter requests coming from Pooch from the rest. Add a global \u003ccode\u003eREQUESTS_HEADERS\u003c/code\u003e variable that is used by the \u003ccode\u003edoi_to_url\u003c/code\u003e function (which requires to make a request to doi.org to figure out the service provider). Add a new \u003ccode\u003eheaders\u003c/code\u003e argument to the \u003ccode\u003eDOIDownloader\u003c/code\u003e to specifically pass requests headers. By default it'll use the Pooch's default user agent.\u003c/li\u003e\n\u003cli\u003eExtend support for Python 3.13 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/451\"\u003e#451\u003c/a\u003e) and Python 3.14 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/505\"\u003e#505\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eProvide more descriptive errors when DOI request fails (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/477\"\u003e#477\u003c/a\u003e). Raise the \u003ccode\u003erequests\u003c/code\u003e response to provide more informative errors when the status code is between 400 and 600.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMaintenance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd testing data to the package distributions (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/421\"\u003e#421\u003c/a\u003e). The test code \u003ccode\u003epooch/tests\u003c/code\u003e is installed but he data in \u003ccode\u003epooch/tests/data\u003c/code\u003e are not. This makes it impossible to run tests on the installed package. Add the appropriate setuptools configuration to make it happen.\u003c/li\u003e\n\u003cli\u003eMove push to codecov to its own job in Actions (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/424\"\u003e#424\u003c/a\u003e). Remove the push to codecov step from the \u003ccode\u003etest\u003c/code\u003e job into a new job that depends on the test job. Upload the coverage reports as artifacts after testing, and reuse the artifacts in the new job. Upload all coverage reports in a single push to Codecov to minimize the number of hits.\u003c/li\u003e\n\u003cli\u003eIncrease the max positional args allowed by pylint (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/438\"\u003e#438\u003c/a\u003e). Configure \u003ccode\u003epylint\u003c/code\u003e to increase the maximum number of positional arguments allowed in any function or method.\u003c/li\u003e\n\u003cli\u003eReplace usage of \u003ccode\u003epkg_resources\u003c/code\u003e for \u003ccode\u003eimportlib.resources\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/449\"\u003e#449\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd mypy to CI job and type hints for one class. (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/404\"\u003e#404\u003c/a\u003e). Add type hints to \u003ccode\u003epooch/core.py\u003c/code\u003e and create a new \u003ccode\u003etyping\u003c/code\u003e submodule for custom type classes, and add it to the API Reference. Run \u003ccode\u003emypy\u003c/code\u003e on CI to perform type checks, and create new targets in the \u003ccode\u003eMakefile\u003c/code\u003e. Extend the list of dependencies required to run the type checks.\u003c/li\u003e\n\u003cli\u003eAdd pytest \u003ccode\u003efigshare\u003c/code\u003e mark to tests (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/481\"\u003e#481\u003c/a\u003e). Add a pytest \u003ccode\u003efigshare\u003c/code\u003e mark to tests that make requests to Figshare. Such mark allows us to filter tests: use \u003ccode\u003epytest -v -m figshare\u003c/code\u003e to only run tests with that mark, or use \u003ccode\u003epytest -v -m \u0026quot;not figshare\u003c/code\u003e to run all test but the marked ones.\u003c/li\u003e\n\u003cli\u003eSkip Figshare related tests on Actions under MacOS (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/482\"\u003e#482\u003c/a\u003e). Skip tests marked with \u003ccode\u003efigshare\u003c/code\u003e on Actions that use MacOS as runner. Those tests in CI were constantly failing, probably due to too many requests coming from GitHub. Add an optional \u003ccode\u003ePYTEST_ARGS_EXTRA\u003c/code\u003e variable to \u003ccode\u003eMakefile\u003c/code\u003e that can be used to pass extra arguments to \u003ccode\u003epytest\u003c/code\u003e. Skip doctests that download files from Figshare.\u003c/li\u003e\n\u003cli\u003eList requirements to run type checks in new file (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/492\"\u003e#492\u003c/a\u003e). Create a new \u003ccode\u003eenv/requirements-types.txt\u003c/code\u003e file with the list of required packages to run types checks. This file is used by the GitHub Action workflow that automatically runs the type checks. List new requirements for type checks in \u003ccode\u003eenvironment.yml\u003c/code\u003e. Stop ignoring missing imports of \u003ccode\u003exxhash\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e. Ignore type assignment for \u003ccode\u003exxhash\u003c/code\u003e in test file.\u003c/li\u003e\n\u003cli\u003eFix uploads of coverage reports to codecov (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/496\"\u003e#496\u003c/a\u003e). Checkout the repository in the \u003ccode\u003ecodecov-upload\u003c/code\u003e job before uploading the coverage reports to codecov.\u003c/li\u003e\n\u003cli\u003ePin black to v25 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/506\"\u003e#506\u003c/a\u003e). Pin black version used in the \u003ccode\u003eenvironment.yml\u003c/code\u003e and to run style checks on CI to \u003ccode\u003e25.*.*\u003c/code\u003e and \u003ccode\u003e\u0026lt;26.0.0\u003c/code\u003e, respectively. Since we plan to replace black with Ruff for autoformatting, it's better to pin for now than reformat it with latest version.\u003c/li\u003e\n\u003cli\u003eOnly run tests with network access on some CI jobs (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/484\"\u003e#484\u003c/a\u003e). Our CI is continuously hitting some external network providers which is causing some of them (mostly figshare for now) to block our traffic. This means that our CI fails randomly and it's annoying. Only run network tests on jobs with the latest Python and optional dependencies installed to try to mitigate this.\u003c/li\u003e\n\u003cli\u003eUse a SPDX expression for license in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/476\"\u003e#476\u003c/a\u003e). Use a SPDX expression for the license in \u003ccode\u003epyproject.toml\u003c/code\u003e and remove the unneeded license classifier. This removes the warnings we were getting after running \u003ccode\u003emake build\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eTyping :: Typed\u003c/code\u003e trove classifier (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/472\"\u003e#472\u003c/a\u003e). Allow PyPI users know that Pooch supports type hints.\u003c/li\u003e\n\u003cli\u003eAllow to manually trigger test job in Actions (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/475\"\u003e#475\u003c/a\u003e). Add \u003ccode\u003eworkflow_dispatch\u003c/code\u003e as an event trigger for the \u003ccode\u003etest.yml\u003c/code\u003e workflow.\u003c/li\u003e\n\u003cli\u003eStandardize requests made by \u003ccode\u003eDOIDownloaders\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/514\"\u003e#514\u003c/a\u003e). Respect user's decisions when defining the \u003ccode\u003eDOIDownloader\u003c/code\u003e with respect to arguments passed to \u003ccode\u003erequests.get\u003c/code\u003e whenever we call that function. This way, all calls made by \u003ccode\u003eDOIDownloaders\u003c/code\u003e and the repository classes make use of the same arguments, including \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003eheaders\u003c/code\u003e, etc.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a link to the Fatiando Forum in the README (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/461\"\u003e#461\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003escXpand\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/488\"\u003e#488\u003c/a\u003e), \u003ccode\u003exclim\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/445\"\u003e#445\u003c/a\u003e), \u003ccode\u003eCLISOPS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/445\"\u003e#445\u003c/a\u003e), and \u003ccode\u003eSPLASH\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/432\"\u003e#432\u003c/a\u003e) to list of projects using Pooch.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eContributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdam Boesky\u003c/li\u003e\n\u003cli\u003eAntonio Valentino\u003c/li\u003e\n\u003cli\u003eDaniel McCloy\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/fatiando/pooch/blob/main/doc/changes.rst\"\u003epooch's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased on: 2026/01/30\u003c/p\u003e\n\u003cp\u003eDOI: \u003ca href=\"https://doi.org/10.5281/zenodo.18379610\"\u003ehttps://doi.org/10.5281/zenodo.18379610\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBreaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8 (\u003ccode\u003e[#450](https://github.com/fatiando/pooch/issues/450) \u0026lt;https://github.com/fatiando/pooch/pull/450\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExplicitly pass \u003ccode\u003efilter\u003c/code\u003e to \u003ccode\u003eTarFile.extractall\u003c/code\u003e on Python \u0026gt;=3.12 (\u003ccode\u003e[#458](https://github.com/fatiando/pooch/issues/458) \u0026lt;https://github.com/fatiando/pooch/pull/458\u0026gt;\u003c/code\u003e__). Pass a \u003ccode\u003efilter=\u0026quot;data\u0026quot;\u003c/code\u003e argument to \u003ccode\u003eTarFile.extractall\u003c/code\u003e to prevent dangerous security issues. The \u003ccode\u003efilter\u003c/code\u003e argument was added in Python 3.12, so only pass it on versions greater or equal than that. This change matches the default behaviour that will take place since Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix TQDM usage (\u003ccode\u003e[#465](https://github.com/fatiando/pooch/issues/465) \u0026lt;https://github.com/fatiando/pooch/pull/465\u0026gt;\u003c/code\u003e__). Newer versions of tqdm behave differently at a terminal vs in a jupyter notebook. Import from \u003ccode\u003etqdm.auto\u003c/code\u003e instead so that the downloader looks right in either a notebook or the terminal.\u003c/li\u003e\n\u003cli\u003eFix bug in file hashing on FIPS enabled system (\u003ccode\u003e[#511](https://github.com/fatiando/pooch/issues/511) \u0026lt;https://github.com/fatiando/pooch/pull/511\u0026gt;\u003c/code\u003e__). Set \u003ccode\u003euserforsecurity=False\u003c/code\u003e on \u003ccode\u003ehashlib\u003c/code\u003e hashing algorithms to make FIPS enabled systems happy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSet User-Agent in requests headers for DOI downloaders (\u003ccode\u003e[#507](https://github.com/fatiando/pooch/issues/507) \u0026lt;https://github.com/fatiando/pooch/pull/507\u0026gt;\u003c/code\u003e__). Pass a custom User-Agent when making requests through DOI downloaders in order to bypass limit rates imposed by services like Zenodo to block abusive requests. The can now filter requests coming from Pooch from the rest. Add a global \u003ccode\u003eREQUESTS_HEADERS\u003c/code\u003e variable that is used by the \u003ccode\u003edoi_to_url\u003c/code\u003e function (which requires to make a request to doi.org to figure out the service provider). Add a new \u003ccode\u003eheaders\u003c/code\u003e argument to the \u003ccode\u003eDOIDownloader\u003c/code\u003e to specifically pass requests headers. By default it’ll use the Pooch’s default user agent.\u003c/li\u003e\n\u003cli\u003eExtend support for Python 3.13 (\u003ccode\u003e[#451](https://github.com/fatiando/pooch/issues/451) \u0026lt;https://github.com/fatiando/pooch/pull/451\u0026gt;\u003c/code\u003e\u003cstrong\u003e) and Python 3.14 (\u003ccode\u003e[#505](https://github.com/fatiando/pooch/issues/505) \u0026lt;https://github.com/fatiando/pooch/pull/505\u0026gt;\u003c/code\u003e\u003c/strong\u003e).\u003c/li\u003e\n\u003cli\u003eProvide more descriptive errors when DOI request fails (\u003ccode\u003e[#477](https://github.com/fatiando/pooch/issues/477) \u0026lt;https://github.com/fatiando/pooch/pull/477\u0026gt;\u003c/code\u003e__). Raise the \u003ccode\u003erequests\u003c/code\u003e response to provide more informative errors when the status code is between 400 and 600.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMaintenance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd testing data to the package distributions (\u003ccode\u003e[#421](https://github.com/fatiando/pooch/issues/421) \u0026lt;https://github.com/fatiando/pooch/pull/421\u0026gt;\u003c/code\u003e__). The test code \u003ccode\u003epooch/tests\u003c/code\u003e is installed but he data in \u003ccode\u003epooch/tests/data\u003c/code\u003e are not. This makes it impossible to run tests on the installed package. Add the appropriate setuptools configuration to make it happen.\u003c/li\u003e\n\u003cli\u003eMove push to codecov to its own job in Actions (\u003ccode\u003e[#424](https://github.com/fatiando/pooch/issues/424) \u0026lt;https://github.com/fatiando/pooch/pull/424\u0026gt;\u003c/code\u003e__). Remove the push to codecov step from the \u003ccode\u003etest\u003c/code\u003e job into a new job that depends on the test job. Upload the coverage reports as artifacts after testing, and reuse the artifacts in the new job. Upload all coverage reports in a single push to Codecov to minimize the number of hits.\u003c/li\u003e\n\u003cli\u003eIncrease the max positional args allowed by pylint (\u003ccode\u003e[#438](https://github.com/fatiando/pooch/issues/438) \u0026lt;https://github.com/fatiando/pooch/pull/438\u0026gt;\u003c/code\u003e__). Configure \u003ccode\u003epylint\u003c/code\u003e to increase the maximum number of positional arguments allowed in any function or method.\u003c/li\u003e\n\u003cli\u003eReplace usage of \u003ccode\u003epkg_resources\u003c/code\u003e for \u003ccode\u003eimportlib.resources\u003c/code\u003e (\u003ccode\u003e[#449](https://github.com/fatiando/pooch/issues/449) \u0026lt;https://github.com/fatiando/pooch/pull/449\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003cli\u003eAdd mypy to CI job and type hints for one class. (\u003ccode\u003e[#404](https://github.com/fatiando/pooch/issues/404) \u0026lt;https://github.com/fatiando/pooch/pull/404\u0026gt;\u003c/code\u003e__). Add type hints to \u003ccode\u003epooch/core.py\u003c/code\u003e and create a new \u003ccode\u003etyping\u003c/code\u003e submodule for custom type classes, and add it to the API Reference. Run \u003ccode\u003emypy\u003c/code\u003e on CI to perform type checks, and create new targets in the \u003ccode\u003eMakefile\u003c/code\u003e. Extend the list of dependencies required to run the type checks.\u003c/li\u003e\n\u003cli\u003eAdd pytest \u003ccode\u003efigshare\u003c/code\u003e mark to tests (\u003ccode\u003e[#481](https://github.com/fatiando/pooch/issues/481) \u0026lt;https://github.com/fatiando/pooch/pull/481\u0026gt;\u003c/code\u003e__). Add a pytest \u003ccode\u003efigshare\u003c/code\u003e mark to tests that make requests to Figshare. Such mark allows us to filter tests: use \u003ccode\u003epytest -v -m figshare\u003c/code\u003e to only run tests with that mark, or use \u003ccode\u003epytest   -v -m \u0026quot;not figshare\u003c/code\u003e to run all test but the marked ones.\u003c/li\u003e\n\u003cli\u003eSkip Figshare related tests on Actions under MacOS (\u003ccode\u003e[#482](https://github.com/fatiando/pooch/issues/482) \u0026lt;https://github.com/fatiando/pooch/pull/482\u0026gt;\u003c/code\u003e__). Skip tests marked with \u003ccode\u003efigshare\u003c/code\u003e on Actions that use MacOS as runner. Those tests in CI were constantly failing, probably due to too many requests coming from GitHub. Add an optional \u003ccode\u003ePYTEST_ARGS_EXTRA\u003c/code\u003e variable to \u003ccode\u003eMakefile\u003c/code\u003e that can be used to pass extra arguments to \u003ccode\u003epytest\u003c/code\u003e. Skip doctests that download files from Figshare.\u003c/li\u003e\n\u003cli\u003eList requirements to run type checks in new file (\u003ccode\u003e[#492](https://github.com/fatiando/pooch/issues/492) \u0026lt;https://github.com/fatiando/pooch/pull/492\u0026gt;\u003c/code\u003e__). Create a new \u003ccode\u003eenv/requirements-types.txt\u003c/code\u003e file with the list of required packages to run types checks. This file is used by the GitHub Action workflow that automatically runs the type checks. List new requirements for type checks in \u003ccode\u003eenvironment.yml\u003c/code\u003e. Stop ignoring missing imports of \u003ccode\u003exxhash\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e. Ignore type assignment for \u003ccode\u003exxhash\u003c/code\u003e in test file.\u003c/li\u003e\n\u003cli\u003eFix uploads of coverage reports to codecov (\u003ccode\u003e[#496](https://github.com/fatiando/pooch/is...\n\n_Description has been truncated_","html_url":"https://github.com/jurgen-paul/tacticalSuperLegend/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jurgen-paul%2FtacticalSuperLegend/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"},{"uuid":"4372436362","node_id":"PR_kwDOGujB-87XzRU_","number":248,"state":"closed","title":"deps-dev(deps-dev): bump lark from 1.3.0 to 1.3.1","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":6,"pull_request":true,"closed_at":"2026-05-03T19:03:08.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-03T17:08:51.000Z","updated_at":"2026-05-03T19:03:18.000Z","time_to_close":6857,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps-dev(deps-dev)","packages":[{"name":"lark","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"}],"path":null,"ecosystem":"pip"},"body":"Bumps [lark](https://github.com/lark-parser/lark) from 1.3.0 to 1.3.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\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/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\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=lark\u0026package-manager=pip\u0026previous-version=1.3.0\u0026new-version=1.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/TensorAeroSpace/TensorAeroSpace/pull/248","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/TensorAeroSpace%2FTensorAeroSpace/issues/248","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/248/packages"},{"uuid":"4006411867","node_id":"PR_kwDORbhszs7HFlRG","number":6,"state":"closed","title":"Bump the minor-update group with 9 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-08T22:16:30.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-01T06:09:35.000Z","updated_at":"2026-03-08T22:16:31.000Z","time_to_close":662815,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":9,"packages":[{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"triton","old_version":"3.1.0","new_version":"3.6.0+git9844da95"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"depyf","old_version":"0.18.0","new_version":"0.20.0","repository_url":"https://github.com/thuml/depyf"},{"name":"sphinx-book-theme","old_version":"1.0.1","new_version":"1.1.4","repository_url":"https://github.com/executablebooks/sphinx-book-theme"},{"name":"sphinx-togglebutton","old_version":"0.3.2","new_version":"0.4.4","repository_url":"https://github.com/executablebooks/sphinx-togglebutton"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 9 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.4.0` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| triton | `3.1.0` | `3.6.0+git9844da95` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.3.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [depyf](https://github.com/thuml/depyf) | `0.18.0` | `0.20.0` |\n| [sphinx-book-theme](https://github.com/executablebooks/sphinx-book-theme) | `1.0.1` | `1.1.4` |\n| [sphinx-togglebutton](https://github.com/executablebooks/sphinx-togglebutton) | `0.3.2` | `0.4.4` |\n\nUpdates `audioread` from 3.0.1 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/fdd0c2e7f20f3a9b9110c454a140108097236268\"\u003e\u003ccode\u003efdd0c2e\u003c/code\u003e\u003c/a\u003e Increment version to 3.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ec7b3bcb29781132b58affd1053d63da64ed9383\"\u003e\u003ccode\u003eec7b3bc\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13 (\u003ca href=\"https://redirect.github.com/beetbox/audioread/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/bfee9a74d6c389a4d60053cf1d1c6af580fae2e6\"\u003e\u003ccode\u003ebfee9a7\u003c/code\u003e\u003c/a\u003e run tests on python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/b671e436cf5c0c6006f190e3561fc680773237be\"\u003e\u003ccode\u003eb671e43\u003c/code\u003e\u003c/a\u003e Add standard-aifc and standard-sunau as dependencies for python 3.13 and above.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ef77a506b641cdeca11b1e782105e29f8f93eb81\"\u003e\u003ccode\u003eef77a50\u003c/code\u003e\u003c/a\u003e Remove legacy url\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/f13b2a2d5d59c683107eb7d9df35c54f1a2c1820\"\u003e\u003ccode\u003ef13b2a2\u003c/code\u003e\u003c/a\u003e Try using proper pypi repo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/84cd1272d498346449c972b046621b3c54d60c08\"\u003e\u003ccode\u003e84cd127\u003c/code\u003e\u003c/a\u003e Increment version to 3.1.0a1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/208562b078770dc373eb9a44554b44d8f1402773\"\u003e\u003ccode\u003e208562b\u003c/code\u003e\u003c/a\u003e Modernize package setup (\u003ca href=\"https://redirect.github.com/beetbox/audioread/issues/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/6da161102578169ce964e05b83cd5c2e8bb8e6c7\"\u003e\u003ccode\u003e6da1611\u003c/code\u003e\u003c/a\u003e Add release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ee7afcf55ae0d760a04db269e2dce6e0adb9cfd4\"\u003e\u003ccode\u003eee7afcf\u003c/code\u003e\u003c/a\u003e Modernize package setup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beetbox/audioread/compare/v3.0.1...v3.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.3.6 to 4.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst\"\u003eplatformdirs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.2 (2026-02-16)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: restructure following Diataxis framework :pr:\u003ccode\u003e448\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs(platforms): fix RST formatting and TOC hierarchy :pr:\u003ccode\u003e447\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.1 (2026-02-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: enhance README, fix issues, and reorganize platforms.rst :pr:\u003ccode\u003e445\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.0 (2026-02-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📚 docs: split usage guide into tutorial, how-to, and reference :pr:\u003ccode\u003e441\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(api): add site_bin_dir property :pr:\u003ccode\u003e443\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(api): add site_applications_dir property :pr:\u003ccode\u003e442\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(unix): use correct runtime dir path for OpenBSD :pr:\u003ccode\u003e440\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs(usage): document use_site_for_root parameter :pr:\u003ccode\u003e439\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.8.0 (2026-02-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs(usage): note that home dir is in stdlib :pr:\u003ccode\u003e431\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(api): add user_applications_dir property :pr:\u003ccode\u003e432\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(api): add user_bin_dir property :pr:\u003ccode\u003e430\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(macos): yield individual site dirs in iter_*_dirs :pr:\u003ccode\u003e429\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(windows): add WIN_PD_OVERRIDE_* env var overrides :pr:\u003ccode\u003e428\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(windows): add PLATFORMDIRS_* env var overrides :pr:\u003ccode\u003e427\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(api): add use_site_for_root parameter :pr:\u003ccode\u003e426\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(api): add site_state_dir for system-wide state :pr:\u003ccode\u003e425\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(api): add site_log_dir and document Store Python sandbox :pr:\u003ccode\u003e424\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs(windows): document Store Python sandbox path behavior :pr:\u003ccode\u003e423\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.7.1 (2026-02-13)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(windows): avoid FileNotFoundError in sandboxed environments :pr:\u003ccode\u003e422\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.7.0 (2026-02-12)\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/tox-dev/platformdirs/commit/c945a28a2cd2ae34154540d144e7671ed80b1c10\"\u003e\u003ccode\u003ec945a28\u003c/code\u003e\u003c/a\u003e feat: improve homebrew path detection (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/9f616e954ee35621a75843fa40180cbd6fea2670\"\u003e\u003ccode\u003e9f616e9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/5720f26595056e11516d1167185ffde135e0aa55\"\u003e\u003ccode\u003e5720f26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/848924dfbec662829225a4a1108e1a818539304a\"\u003e\u003ccode\u003e848924d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/df2e678930d48ac0cb0b019da78a069dfbeae579\"\u003e\u003ccode\u003edf2e678\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/009a3f81879f356a7af0923c2ba443756b552e1c\"\u003e\u003ccode\u003e009a3f8\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/3d194ee7ef7ce2a021a2b5fbf77bbddd171ca9a1\"\u003e\u003ccode\u003e3d194ee\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/6046533d719a8871f5f8fc4fc99c01a14b282853\"\u003e\u003ccode\u003e6046533\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/88389cef8fce1da42858a621770ce4dee8f739f9\"\u003e\u003ccode\u003e88389ce\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/82763ff0c244c7ca7b4eaa4b4336be224b385389\"\u003e\u003ccode\u003e82763ff\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pooch` from 1.8.2 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fatiando/pooch/releases\"\u003epooch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased on: 2026/01/30\u003c/p\u003e\n\u003cp\u003eDOI: \u003ca href=\"https://doi.org/10.5281/zenodo.18379610\"\u003ehttps://doi.org/10.5281/zenodo.18379610\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBreaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/450\"\u003e#450\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExplicitly pass \u003ccode\u003efilter\u003c/code\u003e to \u003ccode\u003eTarFile.extractall\u003c/code\u003e on Python \u0026gt;=3.12 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/458\"\u003e#458\u003c/a\u003e). Pass a \u003ccode\u003efilter=\u0026quot;data\u0026quot;\u003c/code\u003e argument to \u003ccode\u003eTarFile.extractall\u003c/code\u003e to prevent dangerous security issues. The \u003ccode\u003efilter\u003c/code\u003e argument was added in Python 3.12, so only pass it on versions greater or equal than that. This change matches the default behaviour that will take place since Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix TQDM usage (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/465\"\u003e#465\u003c/a\u003e). Newer versions of tqdm behave differently at a terminal vs in a jupyter notebook. Import from \u003ccode\u003etqdm.auto\u003c/code\u003e instead so that the downloader looks right in either a notebook or the terminal.\u003c/li\u003e\n\u003cli\u003eFix bug in file hashing on FIPS enabled system (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/511\"\u003e#511\u003c/a\u003e). Set \u003ccode\u003euserforsecurity=False\u003c/code\u003e on \u003ccode\u003ehashlib\u003c/code\u003e hashing algorithms to make FIPS enabled systems happy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSet User-Agent in requests headers for DOI downloaders (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/507\"\u003e#507\u003c/a\u003e). Pass a custom User-Agent when making requests through DOI downloaders in order to bypass limit rates imposed by services like Zenodo to block abusive requests. The can now filter requests coming from Pooch from the rest. Add a global \u003ccode\u003eREQUESTS_HEADERS\u003c/code\u003e variable that is used by the \u003ccode\u003edoi_to_url\u003c/code\u003e function (which requires to make a request to doi.org to figure out the service provider). Add a new \u003ccode\u003eheaders\u003c/code\u003e argument to the \u003ccode\u003eDOIDownloader\u003c/code\u003e to specifically pass requests headers. By default it'll use the Pooch's default user agent.\u003c/li\u003e\n\u003cli\u003eExtend support for Python 3.13 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/451\"\u003e#451\u003c/a\u003e) and Python 3.14 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/505\"\u003e#505\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eProvide more descriptive errors when DOI request fails (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/477\"\u003e#477\u003c/a\u003e). Raise the \u003ccode\u003erequests\u003c/code\u003e response to provide more informative errors when the status code is between 400 and 600.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMaintenance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd testing data to the package distributions (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/421\"\u003e#421\u003c/a\u003e). The test code \u003ccode\u003epooch/tests\u003c/code\u003e is installed but he data in \u003ccode\u003epooch/tests/data\u003c/code\u003e are not. This makes it impossible to run tests on the installed package. Add the appropriate setuptools configuration to make it happen.\u003c/li\u003e\n\u003cli\u003eMove push to codecov to its own job in Actions (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/424\"\u003e#424\u003c/a\u003e). Remove the push to codecov step from the \u003ccode\u003etest\u003c/code\u003e job into a new job that depends on the test job. Upload the coverage reports as artifacts after testing, and reuse the artifacts in the new job. Upload all coverage reports in a single push to Codecov to minimize the number of hits.\u003c/li\u003e\n\u003cli\u003eIncrease the max positional args allowed by pylint (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/438\"\u003e#438\u003c/a\u003e). Configure \u003ccode\u003epylint\u003c/code\u003e to increase the maximum number of positional arguments allowed in any function or method.\u003c/li\u003e\n\u003cli\u003eReplace usage of \u003ccode\u003epkg_resources\u003c/code\u003e for \u003ccode\u003eimportlib.resources\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/449\"\u003e#449\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd mypy to CI job and type hints for one class. (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/404\"\u003e#404\u003c/a\u003e). Add type hints to \u003ccode\u003epooch/core.py\u003c/code\u003e and create a new \u003ccode\u003etyping\u003c/code\u003e submodule for custom type classes, and add it to the API Reference. Run \u003ccode\u003emypy\u003c/code\u003e on CI to perform type checks, and create new targets in the \u003ccode\u003eMakefile\u003c/code\u003e. Extend the list of dependencies required to run the type checks.\u003c/li\u003e\n\u003cli\u003eAdd pytest \u003ccode\u003efigshare\u003c/code\u003e mark to tests (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/481\"\u003e#481\u003c/a\u003e). Add a pytest \u003ccode\u003efigshare\u003c/code\u003e mark to tests that make requests to Figshare. Such mark allows us to filter tests: use \u003ccode\u003epytest -v -m figshare\u003c/code\u003e to only run tests with that mark, or use \u003ccode\u003epytest -v -m \u0026quot;not figshare\u003c/code\u003e to run all test but the marked ones.\u003c/li\u003e\n\u003cli\u003eSkip Figshare related tests on Actions under MacOS (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/482\"\u003e#482\u003c/a\u003e). Skip tests marked with \u003ccode\u003efigshare\u003c/code\u003e on Actions that use MacOS as runner. Those tests in CI were constantly failing, probably due to too many requests coming from GitHub. Add an optional \u003ccode\u003ePYTEST_ARGS_EXTRA\u003c/code\u003e variable to \u003ccode\u003eMakefile\u003c/code\u003e that can be used to pass extra arguments to \u003ccode\u003epytest\u003c/code\u003e. Skip doctests that download files from Figshare.\u003c/li\u003e\n\u003cli\u003eList requirements to run type checks in new file (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/492\"\u003e#492\u003c/a\u003e). Create a new \u003ccode\u003eenv/requirements-types.txt\u003c/code\u003e file with the list of required packages to run types checks. This file is used by the GitHub Action workflow that automatically runs the type checks. List new requirements for type checks in \u003ccode\u003eenvironment.yml\u003c/code\u003e. Stop ignoring missing imports of \u003ccode\u003exxhash\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e. Ignore type assignment for \u003ccode\u003exxhash\u003c/code\u003e in test file.\u003c/li\u003e\n\u003cli\u003eFix uploads of coverage reports to codecov (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/496\"\u003e#496\u003c/a\u003e). Checkout the repository in the \u003ccode\u003ecodecov-upload\u003c/code\u003e job before uploading the coverage reports to codecov.\u003c/li\u003e\n\u003cli\u003ePin black to v25 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/506\"\u003e#506\u003c/a\u003e). Pin black version used in the \u003ccode\u003eenvironment.yml\u003c/code\u003e and to run style checks on CI to \u003ccode\u003e25.*.*\u003c/code\u003e and \u003ccode\u003e\u0026lt;26.0.0\u003c/code\u003e, respectively. Since we plan to replace black with Ruff for autoformatting, it's better to pin for now than reformat it with latest version.\u003c/li\u003e\n\u003cli\u003eOnly run tests with network access on some CI jobs (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/484\"\u003e#484\u003c/a\u003e). Our CI is continuously hitting some external network providers which is causing some of them (mostly figshare for now) to block our traffic. This means that our CI fails randomly and it's annoying. Only run network tests on jobs with the latest Python and optional dependencies installed to try to mitigate this.\u003c/li\u003e\n\u003cli\u003eUse a SPDX expression for license in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/476\"\u003e#476\u003c/a\u003e). Use a SPDX expression for the license in \u003ccode\u003epyproject.toml\u003c/code\u003e and remove the unneeded license classifier. This removes the warnings we were getting after running \u003ccode\u003emake build\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eTyping :: Typed\u003c/code\u003e trove classifier (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/472\"\u003e#472\u003c/a\u003e). Allow PyPI users know that Pooch supports type hints.\u003c/li\u003e\n\u003cli\u003eAllow to manually trigger test job in Actions (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/475\"\u003e#475\u003c/a\u003e). Add \u003ccode\u003eworkflow_dispatch\u003c/code\u003e as an event trigger for the \u003ccode\u003etest.yml\u003c/code\u003e workflow.\u003c/li\u003e\n\u003cli\u003eStandardize requests made by \u003ccode\u003eDOIDownloaders\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/514\"\u003e#514\u003c/a\u003e). Respect user's decisions when defining the \u003ccode\u003eDOIDownloader\u003c/code\u003e with respect to arguments passed to \u003ccode\u003erequests.get\u003c/code\u003e whenever we call that function. This way, all calls made by \u003ccode\u003eDOIDownloaders\u003c/code\u003e and the repository classes make use of the same arguments, including \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003eheaders\u003c/code\u003e, etc.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a link to the Fatiando Forum in the README (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/461\"\u003e#461\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003escXpand\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/488\"\u003e#488\u003c/a\u003e), \u003ccode\u003exclim\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/445\"\u003e#445\u003c/a\u003e), \u003ccode\u003eCLISOPS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/445\"\u003e#445\u003c/a\u003e), and \u003ccode\u003eSPLASH\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/432\"\u003e#432\u003c/a\u003e) to list of projects using Pooch.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eContributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdam Boesky\u003c/li\u003e\n\u003cli\u003eAntonio Valentino\u003c/li\u003e\n\u003cli\u003eDaniel McCloy\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/fatiando/pooch/blob/main/doc/changes.rst\"\u003epooch's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased on: 2026/01/30\u003c/p\u003e\n\u003cp\u003eDOI: \u003ca href=\"https://doi.org/10.5281/zenodo.18379610\"\u003ehttps://doi.org/10.5281/zenodo.18379610\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBreaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8 (\u003ccode\u003e[#450](https://github.com/fatiando/pooch/issues/450) \u0026lt;https://github.com/fatiando/pooch/pull/450\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExplicitly pass \u003ccode\u003efilter\u003c/code\u003e to \u003ccode\u003eTarFile.extractall\u003c/code\u003e on Python \u0026gt;=3.12 (\u003ccode\u003e[#458](https://github.com/fatiando/pooch/issues/458) \u0026lt;https://github.com/fatiando/pooch/pull/458\u0026gt;\u003c/code\u003e__). Pass a \u003ccode\u003efilter=\u0026quot;data\u0026quot;\u003c/code\u003e argument to \u003ccode\u003eTarFile.extractall\u003c/code\u003e to prevent dangerous security issues. The \u003ccode\u003efilter\u003c/code\u003e argument was added in Python 3.12, so only pass it on versions greater or equal than that. This change matches the default behaviour that will take place since Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix TQDM usage (\u003ccode\u003e[#465](https://github.com/fatiando/pooch/issues/465) \u0026lt;https://github.com/fatiando/pooch/pull/465\u0026gt;\u003c/code\u003e__). Newer versions of tqdm behave differently at a terminal vs in a jupyter notebook. Import from \u003ccode\u003etqdm.auto\u003c/code\u003e instead so that the downloader looks right in either a notebook or the terminal.\u003c/li\u003e\n\u003cli\u003eFix bug in file hashing on FIPS enabled system (\u003ccode\u003e[#511](https://github.com/fatiando/pooch/issues/511) \u0026lt;https://github.com/fatiando/pooch/pull/511\u0026gt;\u003c/code\u003e__). Set \u003ccode\u003euserforsecurity=False\u003c/code\u003e on \u003ccode\u003ehashlib\u003c/code\u003e hashing algorithms to make FIPS enabled systems happy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSet User-Agent in requests headers for DOI downloaders (\u003ccode\u003e[#507](https://github.com/fatiando/pooch/issues/507) \u0026lt;https://github.com/fatiando/pooch/pull/507\u0026gt;\u003c/code\u003e__). Pass a custom User-Agent when making requests through DOI downloaders in order to bypass limit rates imposed by services like Zenodo to block abusive requests. The can now filter requests coming from Pooch from the rest. Add a global \u003ccode\u003eREQUESTS_HEADERS\u003c/code\u003e variable that is used by the \u003ccode\u003edoi_to_url\u003c/code\u003e function (which requires to make a request to doi.org to figure out the service provider). Add a new \u003ccode\u003eheaders\u003c/code\u003e argument to the \u003ccode\u003eDOIDownloader\u003c/code\u003e to specifically pass requests headers. By default it’ll use the Pooch’s default user agent.\u003c/li\u003e\n\u003cli\u003eExtend support for Python 3.13 (\u003ccode\u003e[#451](https://github.com/fatiando/pooch/issues/451) \u0026lt;https://github.com/fatiando/pooch/pull/451\u0026gt;\u003c/code\u003e\u003cstrong\u003e) and Python 3.14 (\u003ccode\u003e[#505](https://github.com/fatiando/pooch/issues/505) \u0026lt;https://github.com/fatiando/pooch/pull/505\u0026gt;\u003c/code\u003e\u003c/strong\u003e).\u003c/li\u003e\n\u003cli\u003eProvide more descriptive errors when DOI request fails (\u003ccode\u003e[#477](https://github.com/fatiando/pooch/issues/477) \u0026lt;https://github.com/fatiando/pooch/pull/477\u0026gt;\u003c/code\u003e__). Raise the \u003ccode\u003erequests\u003c/code\u003e response to provide more informative errors when the status code is between 400 and 600.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMaintenance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd testing data to the package distributions (\u003ccode\u003e[#421](https://github.com/fatiando/pooch/issues/421) \u0026lt;https://github.com/fatiando/pooch/pull/421\u0026gt;\u003c/code\u003e__). The test code \u003ccode\u003epooch/tests\u003c/code\u003e is installed but he data in \u003ccode\u003epooch/tests/data\u003c/code\u003e are not. This makes it impossible to run tests on the installed package. Add the appropriate setuptools configuration to make it happen.\u003c/li\u003e\n\u003cli\u003eMove push to codecov to its own job in Actions (\u003ccode\u003e[#424](https://github.com/fatiando/pooch/issues/424) \u0026lt;https://github.com/fatiando/pooch/pull/424\u0026gt;\u003c/code\u003e__). Remove the push to codecov step from the \u003ccode\u003etest\u003c/code\u003e job into a new job that depends on the test job. Upload the coverage reports as artifacts after testing, and reuse the artifacts in the new job. Upload all coverage reports in a single push to Codecov to minimize the number of hits.\u003c/li\u003e\n\u003cli\u003eIncrease the max positional args allowed by pylint (\u003ccode\u003e[#438](https://github.com/fatiando/pooch/issues/438) \u0026lt;https://github.com/fatiando/pooch/pull/438\u0026gt;\u003c/code\u003e__). Configure \u003ccode\u003epylint\u003c/code\u003e to increase the maximum number of positional arguments allowed in any function or method.\u003c/li\u003e\n\u003cli\u003eReplace usage of \u003ccode\u003epkg_resources\u003c/code\u003e for \u003ccode\u003eimportlib.resources\u003c/code\u003e (\u003ccode\u003e[#449](https://github.com/fatiando/pooch/issues/449) \u0026lt;https://github.com/fatiando/pooch/pull/449\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003cli\u003eAdd mypy to CI job and type hints for one class. (\u003ccode\u003e[#404](https://github.com/fatiando/pooch/issues/404) \u0026lt;https://github.com/fatiando/pooch/pull/404\u0026gt;\u003c/code\u003e__). Add type hints to \u003ccode\u003epooch/core.py\u003c/code\u003e and create a new \u003ccode\u003etyping\u003c/code\u003e submodule for custom type classes, and add it to the API Reference. Run \u003ccode\u003emypy\u003c/code\u003e on CI to perform type checks, and create new targets in the \u003ccode\u003eMakefile\u003c/code\u003e. Extend the list of dependencies required to run the type checks.\u003c/li\u003e\n\u003cli\u003eAdd pytest \u003ccode\u003efigshare\u003c/code\u003e mark to tests (\u003ccode\u003e[#481](https://github.com/fatiando/pooch/issues/481) \u0026lt;https://github.com/fatiando/pooch/pull/481\u0026gt;\u003c/code\u003e__). Add a pytest \u003ccode\u003efigshare\u003c/code\u003e mark to tests that make requests to Figshare. Such mark allows us to filter tests: use \u003ccode\u003epytest -v -m figshare\u003c/code\u003e to only run tests with that mark, or use \u003ccode\u003epytest   -v -m \u0026quot;not figshare\u003c/code\u003e to run all test but the marked ones.\u003c/li\u003e\n\u003cli\u003eSkip Figshare related tests on Actions under MacOS (\u003ccode\u003e[#482](https://github.com/fatiando/pooch/issues/482) \u0026lt;https://github.com/fatiando/pooch/pull/482\u0026gt;\u003c/code\u003e__). Skip tests marked with \u003ccode\u003efigshare\u003c/code\u003e on Actions that use MacOS as runner. Those tests in CI were constantly failing, probably due to too many requests coming from GitHub. Add an optional \u003ccode\u003ePYTEST_ARGS_EXTRA\u003c/code\u003e variable to \u003ccode\u003eMakefile\u003c/code\u003e that can be used to pass extra arguments to \u003ccode\u003epytest\u003c/code\u003e. Skip doctests that download files from Figshare.\u003c/li\u003e\n\u003cli\u003eList requirements to run type checks in new file (\u003ccode\u003e[#492](https://github.com/fatiando/pooch/issues/492) \u0026lt;https://github.com/fatiando/pooch/pull/492\u0026gt;\u003c/code\u003e__). Create a new \u003ccode\u003eenv/requirements-types.txt\u003c/code\u003e file with the list of required packages to run types checks. This file is used by the GitHub Action workflow that automatically runs the type checks. List new requirements for type checks in \u003ccode\u003eenvironment.yml\u003c/code\u003e. Stop ignoring missing imports of \u003ccode\u003exxhash\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e. Ignore type assignment for \u003ccode\u003exxhash\u003c/code\u003e in test file.\u003c/li\u003e\n\u003cli\u003eFix uploads of coverage reports to codecov (\u003ccode\u003e[#496](https://github.com/fatiando/pooch/issues/496) \u0026lt;https://github.com/fatiando/pooch/pull/496\u0026gt;\u003c/code\u003e__). Checkout the repository in the \u003ccode\u003ecodecov-upload\u003c/code\u003e job before uploading the coverage reports to codecov.\u003c/li\u003e\n\u003cli\u003ePin black to v25 (\u003ccode\u003e[#506](https://github.com/fatiando/pooch/issues/506) \u0026lt;https://github.com/fatiando/pooch/pull/506\u0026gt;\u003c/code\u003e__). Pin black version used in the \u003ccode\u003eenvironment.yml\u003c/code\u003e and to run style checks on CI to \u003ccode\u003e25.*.*\u003c/code\u003e and \u003ccode\u003e\u0026lt;26.0.0\u003c/code\u003e, respectively. Since we plan to replace black with Ruff for autoformatting, it’s better to pin for now than reformat it with latest version.\u003c/li\u003e\n\u003cli\u003eOnly run tests with network access on some CI jobs (\u003ccode\u003e[#484](https://github.com/fatiando/pooch/issues/484) \u0026lt;https://github.com/fatiando/pooch/pull/484\u0026gt;\u003c/code\u003e__). Our CI is continuously hitting some external network providers which is causing some of them (mostly figshare for now) to block our traffic. This means that our CI fails randomly and it’s annoying. Only run network tests on jobs with the latest Python and optional dependencies installed to try to mitigate this.\u003c/li\u003e\n\u003cli\u003eUse a SPDX expression for license in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ccode\u003e[#476](https://github.com/fatiando/pooch/issues/476) \u0026lt;https://github.com/fatiando/pooch/pull/476\u0026gt;\u003c/code\u003e__). Use a SPDX expression for the license in \u003ccode\u003epyproject.toml\u003c/code\u003e and remove the unneeded license classifier. This removes the warnings we were getting after running \u003ccode\u003emake build\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eTyping :: Typed\u003c/code\u003e trove classifier (\u003ccode\u003e[#472](https://github.com/fatiando/pooch/issues/472) \u0026lt;https://github.com/fatiando/pooch/pull/472\u0026gt;\u003c/code\u003e__). Allow PyPI users know that Pooch supports type hints.\u003c/li\u003e\n\u003cli\u003eAllow to manually trigger test job in Actions (\u003ccode\u003e[#475](https://github.com/fatiando/pooch/issues/475) \u0026lt;https://github.com/fatiando/pooch/pull/475\u0026gt;\u003c/code\u003e__). Add \u003ccode\u003eworkflow_dispatch\u003c/code\u003e as an event trigger for the \u003ccode\u003etest.yml\u003c/code\u003e workflow.\u003c/li\u003e\n\u003cli\u003eStandardize requests made by \u003ccode\u003eDOIDownloaders\u003c/code\u003e (\u003ccode\u003e[#514](https://github.com/fatiando/pooch/issues/514) \u0026lt;https://github.com/fatiando/pooch/pull/514\u0026gt;\u003c/code\u003e__). Respect user’s decisions when defining the \u003ccode\u003eDOIDownloader\u003c/code\u003e with respect to arguments passed to \u003ccode\u003erequests.get\u003c/code\u003e whenever we call that function. This way, all calls made by \u003ccode\u003eDOIDownloaders\u003c/code\u003e and the repository classes make use of the same arguments, including \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003eheaders\u003c/code\u003e, etc.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a link to the Fatiando Forum in the README (\u003ccode\u003e[#461](https://github.com/fatiando/pooch/issues/461) \u0026lt;https://github.com/fatiando/pooch/pull/461\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003escXpand\u003c/code\u003e (\u003ccode\u003e[#488](https://github.com/fatiando/pooch/issues/488) \u0026lt;https://github.com/fatiando/pooch/pull/488\u0026gt;\u003c/code\u003e\u003cstrong\u003e), \u003ccode\u003exclim\u003c/code\u003e (\u003ccode\u003e[#445](https://github.com/fatiando/pooch/issues/445) \u0026lt;https://github.com/fatiando/pooch/pull/445\u0026gt;\u003c/code\u003e\u003c/strong\u003e), \u003ccode\u003eCLISOPS\u003c/code\u003e (\u003ccode\u003e[#445](https://github.com/fatiando/pooch/issues/445) \u0026lt;https://github.com/fatiando/pooch/pull/445\u0026gt;\u003c/code\u003e\u003cstrong\u003e), and \u003ccode\u003eSPLASH\u003c/code\u003e (\u003ccode\u003e[#432](https://github.com/fatiando/pooch/issues/432) \u0026lt;https://github.com/fatiando/pooch/pull/432\u0026gt;\u003c/code\u003e\u003c/strong\u003e) to list of projects using Pooch.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release contains contributions from:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdam Boesky\u003c/li\u003e\n\u003cli\u003eAntonio Valentino\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/6aab6f90569774d335edb7197729005c9e99f7c1\"\u003e\u003ccode\u003e6aab6f9\u003c/code\u003e\u003c/a\u003e Add changelog for Pooch v1.9.0 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/2932f3407131697171b007c4a97f3586250c411f\"\u003e\u003ccode\u003e2932f34\u003c/code\u003e\u003c/a\u003e Standardize requests made by \u003ccode\u003eDOIDownloaders\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/514\"\u003e#514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/d2b547edcb3d10d68451e8951d6aceaeb502302f\"\u003e\u003ccode\u003ed2b547e\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 6 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/e33707dce81f77a23dfecb457b0f796bdbb4dc3a\"\u003e\u003ccode\u003ee33707d\u003c/code\u003e\u003c/a\u003e Update Santi's affiliation in AUTHORS.md (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/e7e59e91f5009d05d8184bf325bed963f724ca36\"\u003e\u003ccode\u003ee7e59e9\u003c/code\u003e\u003c/a\u003e Fix bug in file hashing on FIPS enabled system (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/27e3ab2a686040554068a1a08a433588c6524aed\"\u003e\u003ccode\u003e27e3ab2\u003c/code\u003e\u003c/a\u003e Fix TQDM usage (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/465\"\u003e#465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/d9a82e6c7b5ca39b2e4c9207fd4da3cd9552c74e\"\u003e\u003ccode\u003ed9a82e6\u003c/code\u003e\u003c/a\u003e Allow to manually trigger test job in Actions (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/475\"\u003e#475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/00c6cea6328c9c16c32bba20c01dc02e83339da5\"\u003e\u003ccode\u003e00c6cea\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eTyping :: Typed\u003c/code\u003e trove classifier (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/472\"\u003e#472\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/f4d32da438a18266a7431ed19d7f6f44c0d28cb0\"\u003e\u003ccode\u003ef4d32da\u003c/code\u003e\u003c/a\u003e Use a SPDX expression for license in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/cddaac9db356d62703f5c5dfcbccc6d4006df5e6\"\u003e\u003ccode\u003ecddaac9\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 7 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/478\"\u003e#478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fatiando/pooch/compare/v1.8.2...v1.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `triton` from 3.1.0 to 3.6.0+git9844da95\n\nUpdates `pre-commit` from 4.0.1 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\u003ch2\u003epre-commit v4.2.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFor \u003ccode\u003elanguage: python\u003c/code\u003e first attempt a versioned python executable for the default language version before consulting a potentially unversioned \u003ccode\u003esys.executable\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3430\"\u003e#3430\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle error during conflict detection when a file is named \u0026quot;HEAD\u0026quot;\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3425\"\u003e#3425\u003c/a\u003e PR by \u003ca href=\"https://github.com/tusharsadhwani\"\u003e\u003ccode\u003e@​tusharsadhwani\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.1.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: julia\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3348\"\u003e#3348\u003c/a\u003e PR by \u003ca href=\"https://github.com/fredrikekre\"\u003e\u003ccode\u003e@​fredrikekre\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/2689\"\u003e#2689\u003c/a\u003e issue \u003ca href=\"https://github.com/jmuchovej\"\u003e\u003ccode\u003e@​jmuchovej\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable automatic toolchain switching for \u003ccode\u003elanguage: golang\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3304\"\u003e#3304\u003c/a\u003e PR by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3300\"\u003e#3300\u003c/a\u003e issue by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3149\"\u003e#3149\u003c/a\u003e issue by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: r\u003c/code\u003e installation when initiated by RStudio.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3389\"\u003e#3389\u003c/a\u003e PR by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3385\"\u003e#3385\u003c/a\u003e issue by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\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\u003ch1\u003e4.2.0 - 2025-03-18\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFor \u003ccode\u003elanguage: python\u003c/code\u003e first attempt a versioned python executable for\nthe default language version before consulting a potentially unversioned\n\u003ccode\u003esys.executable\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3430\"\u003e#3430\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle error during conflict detection when a file is named \u0026quot;HEAD\u0026quot;\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3425\"\u003e#3425\u003c/a\u003e PR by \u003ca href=\"https://github.com/tusharsadhwani\"\u003e\u003ccode\u003e@​tusharsadhwani\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.1.0 - 2025-01-20\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: julia\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3348\"\u003e#3348\u003c/a\u003e PR by \u003ca href=\"https://github.com/fredrikekre\"\u003e\u003ccode\u003e@​fredrikekre\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/2689\"\u003e#2689\u003c/a\u003e issue \u003ca href=\"https://github.com/jmuchovej\"\u003e\u003ccode\u003e@​jmuchovej\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable automatic toolchain switching for \u003ccode\u003elanguage: golang\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3304\"\u003e#3304\u003c/a\u003e PR by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3300\"\u003e#3300\u003c/a\u003e issue by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3149\"\u003e#3149\u003c/a\u003e issue by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: r\u003c/code\u003e installation when initiated by RStudio.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3389\"\u003e#3389\u003c/a\u003e PR by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3385\"\u003e#3385\u003c/a\u003e issue by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\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.0.1...v4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `depyf` from 0.18.0 to 0.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/thuml/depyf/releases\"\u003edepyf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.19.0 release with recent improvements\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd device to imports by \u003ca href=\"https://github.com/ProExpertProg\"\u003e\u003ccode\u003e@​ProExpertProg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/82\"\u003ethuml/depyf#82\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing default argument values in \u003ccode\u003epatched_load_by_key_path\u003c/code\u003e by \u003ca href=\"https://github.com/nopperl\"\u003e\u003ccode\u003e@​nopperl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/81\"\u003ethuml/depyf#81\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate test files by \u003ca href=\"https://github.com/youkaichao\"\u003e\u003ccode\u003e@​youkaichao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/83\"\u003ethuml/depyf#83\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy instruction by \u003ca href=\"https://github.com/youkaichao\"\u003e\u003ccode\u003e@​youkaichao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/84\"\u003ethuml/depyf#84\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/ProExpertProg\"\u003e\u003ccode\u003e@​ProExpertProg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/82\"\u003ethuml/depyf#82\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nopperl\"\u003e\u003ccode\u003e@​nopperl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/81\"\u003ethuml/depyf#81\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/thuml/depyf/compare/v0.18.0...v0.19.0\"\u003ehttps://github.com/thuml/depyf/compare/v0.18.0...v0.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/thuml/depyf/commit/b67e16787e8c66324e114b4f2c6024438385b242\"\u003e\u003ccode\u003eb67e167\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/91ea66d5feca12392ba9c45a08094d948514343d\"\u003e\u003ccode\u003e91ea66d\u003c/code\u003e\u003c/a\u003e update test files (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/88\"\u003e#88\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/4fd2d58b0f6361f4c39aaf26e98b94049b7e6dd6\"\u003e\u003ccode\u003e4fd2d58\u003c/code\u003e\u003c/a\u003e bugfix for list extend with argval != 1 and add DEPYF_REMOVE_TEMP env var (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/87\"\u003e#87\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/2612c16584d7360a511044a313eac02e15f46831\"\u003e\u003ccode\u003e2612c16\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/e379286a302abde2808d249ba186bbe7a8235cc0\"\u003e\u003ccode\u003ee379286\u003c/code\u003e\u003c/a\u003e fix copy instruction (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/5cde94f8fe9446c56ccb19df71dc9f887d4f948a\"\u003e\u003ccode\u003e5cde94f\u003c/code\u003e\u003c/a\u003e update test files (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/83\"\u003e#83\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/461af54b38e07df88c33f5da81970bfc82eaa325\"\u003e\u003ccode\u003e461af54\u003c/code\u003e\u003c/a\u003e Add missing default argument values in \u003ccode\u003epatched_load_by_key_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/81\"\u003e#81\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/3c95e7ac95e133bce7ef8bf6f609dda2e8f331bf\"\u003e\u003ccode\u003e3c95e7a\u003c/code\u003e\u003c/a\u003e Add device to imports (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/thuml/depyf/compare/v0.18.0...v0.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-book-theme` from 1.0.1 to 1.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/releases\"\u003esphinx-book-theme's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.4 - 2025-02-20\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.1.3...d3552e2524f4f8b602e9c161a5e765672d1367d1\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eENH: make the generated documentation more reproducible \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/883\"\u003e#883\u003c/a\u003e (\u003ca href=\"https://github.com/mitya57\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: make the generated gettext files reproducible \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/882\"\u003e#882\u003c/a\u003e (\u003ca href=\"https://github.com/mitya57\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: bump version for release :rocket: \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/843\"\u003e#843\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: edited russian translate \u0026quot;By\u0026quot; \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/806\"\u003e#806\u003c/a\u003e (\u003ca href=\"https://github.com/askras\"\u003e\u003ccode\u003e@​askras\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: use raw strings for math equations \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/881\"\u003e#881\u003c/a\u003e (\u003ca href=\"https://github.com/mitya57\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFIX: exclude command prompts when using copy button \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/867\"\u003e#867\u003c/a\u003e (\u003ca href=\"https://github.com/stevepiercy\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMAINT: pin PST theme version for now \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/898\"\u003e#898\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: adding explicit sphinx config into RTD config \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/897\"\u003e#897\u003c/a\u003e (\u003ca href=\"https://github.com/bsipocz\"\u003e\u003ccode\u003e@​bsipocz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: update dependabot config \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/875\"\u003e#875\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: pin pydata sphinx theme and update regression tests \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/862\"\u003e#862\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: upgrade sass \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/861\"\u003e#861\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: really drop python\u0026lt;=3.8 support \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/844\"\u003e#844\u003c/a\u003e (\u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDOCS: fix links in documentation \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/884\"\u003e#884\u003c/a\u003e (\u003ca href=\"https://github.com/choldgraf\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOCS: automatically update copyright year \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/866\"\u003e#866\u003c/a\u003e (\u003ca href=\"https://github.com/stevepiercy\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOCS: correct the option \u003ccode\u003ehtml_source_suffix\u003c/code\u003e to \u003ccode\u003ehtml_sourcelink_suffix\u003c/code\u003e \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/859\"\u003e#859\u003c/a\u003e (\u003ca href=\"https://github.com/Snoopy1866\"\u003e\u003ccode\u003e@​Snoopy1866\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther merged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild(deps-dev): Bump express from 4.18.2 to 4.21.2 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/886\"\u003e#886\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/885\"\u003e#885\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/880\"\u003e#880\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps-dev): Bump dedent from 0.7.0 to 1.5.3 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/878\"\u003e#878\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps-dev): Bump sass from 1.80.4 to 1.81.0 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/877\"\u003e#877\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump the actions group with 3 updates \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/876\"\u003e#876\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps-dev): Bump webpack from 5.92.0 to 5.96.1 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/871\"\u003e#871\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/860\"\u003e#860\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.10.0 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/857\"\u003e#857\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/808\"\u003e#808\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/graphs/contributors?from=2024-06-12\u0026amp;to=2025-02-20\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aagoose77+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aaskras+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​askras\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Absipocz+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​bsipocz\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Acholdgraf+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Adependabot+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Adylanh724+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dylanh724\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Akloczek+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Amitya57+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Anilsleh+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​nilsleh\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Apre-commit-ci+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3ASnoopy1866+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Snoopy1866\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Astevepiercy+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Awelcome+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​welcome\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/blob/master/CHANGELOG.md\"\u003esphinx-book-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev1.1.2 -- 2024-02-13\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.1.1...3da24da74f6042599fe6c9e2d612f5cbdef42280\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eENH: bump version \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/818\"\u003e#818\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: correct event-handler signature \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/817\"\u003e#817\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/graphs/contributors?from=2024-02-13\u0026amp;to=2024-02-13\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aagoose77+updated%3A2024-02-13..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1 -- 2024-02-13\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.1.0...9335ab99b0bc77b826cb2c5afcef3432f14e8780\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eENH: bump version for 1.1.1 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/815\"\u003e#815\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: use \u003ccode\u003econfig-inited\u003c/code\u003e event to register config \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/814\"\u003e#814\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther merged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild(deps): Bump actions/setup-python from 4 to 5 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/803\"\u003e#803\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/801\"\u003e#801\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/graphs/contributors?from=2023-12-19\u0026amp;to=2024-02-13\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aagoose77+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Acholdgraf+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Adependabot+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aghisvail+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ghisvail\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Apre-commit-ci+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Awelcome+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​welcome\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0 -- 2023-12-19\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.0.1...v1.1.0\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\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/executablebooks/sphinx-book-theme/commit/23f6936ae956428463f2ec97eebc2fe68bdd344b\"\u003e\u003ccode\u003e23f6936\u003c/code\u003e\u003c/a\u003e chore: bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/co...\n\n_Description has been truncated_","html_url":"https://github.com/wlxlatiao666/vllm-0.8.3/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/wlxlatiao666%2Fvllm-0.8.3/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"},{"uuid":"3881829355","node_id":"PR_kwDOJpUnI87AtFcc","number":122,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 79 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-01T11:05:21.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-01T11:10:59.000Z","updated_at":"2026-03-01T11:05:23.000Z","time_to_close":2418862,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":79,"packages":[{"name":"black","old_version":"25.9.0","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.10.7","new_version":"7.13.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.13.3","new_version":"0.14.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"matplotlib","old_version":"3.10.6","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"deptry","old_version":"0.23.1","new_version":"0.24.0","repository_url":"https://github.com/fpgmaas/deptry"},{"name":"pyarrow","old_version":"21.0.0","new_version":"23.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"pandas-stubs","old_version":"2.3.2.250926","new_version":"2.3.3.260113","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"anyio","old_version":"4.11.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"async-lru","old_version":"2.0.5","new_version":"2.1.0","repository_url":"https://github.com/aio-libs/async-lru"},{"name":"beautifulsoup4","old_version":"4.14.2","new_version":"4.14.3"},{"name":"bleach","old_version":"6.2.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"certifi","old_version":"2025.10.5","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cfgv","old_version":"3.4.0","new_version":"3.5.0","repository_url":"https://github.com/asottile/cfgv"},{"name":"charset-normalizer","old_version":"3.4.3","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.0","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"debugpy","old_version":"1.8.17","new_version":"1.8.20","repository_url":"https://github.com/microsoft/debugpy"},{"name":"exceptiongroup","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.19.1","new_version":"3.20.3","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.60.1","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"identify","old_version":"2.6.15","new_version":"2.6.16","repository_url":"https://github.com/pre-commit/identify"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"ipykernel","old_version":"6.30.1","new_version":"7.1.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ipython","old_version":"8.37.0","new_version":"8.38.0","repository_url":"https://github.com/ipython/ipython"},{"name":"ipywidgets","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"json5","old_version":"0.12.1","new_version":"0.13.0","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"jsonschema","old_version":"4.25.1","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"jupyter-client","old_version":"8.6.3","new_version":"8.8.0","repository_url":"https://github.com/jupyter/jupyter_client"},{"name":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"jupyter-server-terminals","old_version":"0.5.3","new_version":"0.5.4","repository_url":"https://github.com/jupyter-server/jupyter_server_terminals"},{"name":"jupyterlab","old_version":"4.4.9","new_version":"4.5.3","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"jupyterlab-widgets","old_version":"3.0.15","new_version":"3.0.16","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"lark","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"mistune","old_version":"3.1.4","new_version":"3.2.0","repository_url":"https://github.com/lepture/mistune"},{"name":"nbclient","old_version":"0.10.2","new_version":"0.10.4","repository_url":"https://github.com/jupyter/nbclient"},{"name":"nbconvert","old_version":"7.16.6","new_version":"7.17.0","repository_url":"https://github.com/jupyter/nbconvert"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"numba","old_version":"0.62.1","new_version":"0.63.1","repository_url":"https://github.com/numba/numba"},{"name":"numexpr","old_version":"2.13.1","new_version":"2.14.1","repository_url":"https://github.com/pydata/numexpr"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pillow","old_version":"11.3.0","new_version":"12.1.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.4.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prometheus-client","old_version":"0.23.1","new_version":"0.24.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"psutil","old_version":"7.1.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycparser","old_version":"2.23","new_version":"3.0","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyparsing","old_version":"3.2.5","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"roman-numerals-py","old_version":"3.1.0","new_version":"4.1.0","repository_url":"https://github.com/AA-Turner/roman-numerals"},{"name":"rpds-py","old_version":"0.27.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"ruamel-yaml","old_version":"0.18.15","new_version":"0.19.1"},{"name":"send2trash","old_version":"1.8.3","new_version":"2.1.0","repository_url":"https://github.com/arsenetar/send2trash"},{"name":"setuptools","old_version":"80.9.0","new_version":"80.10.2","repository_url":"https://github.com/pypa/setuptools"},{"name":"soupsieve","old_version":"2.8","new_version":"2.8.3","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.48.0","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"tornado","old_version":"6.5.2","new_version":"6.5.4","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-pytz","old_version":"2025.2.0.20250809","new_version":"2025.2.0.20251108","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"tzdata","old_version":"2025.2","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.37.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.34.0","new_version":"20.36.1","repository_url":"https://github.com/pypa/virtualenv"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"wcwidth","old_version":"0.2.14","new_version":"0.5.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"webcolors","old_version":"24.11.1","new_version":"25.10.0","repository_url":"https://github.com/ubernostrum/webcolors"},{"name":"websocket-client","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/websocket-client/websocket-client"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"},{"name":"widgetsnbextension","old_version":"4.0.14","new_version":"4.0.15"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 75 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [black](https://github.com/psf/black) | `25.9.0` | `26.1.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.7` | `7.13.2` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.3` | `0.14.14` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.6` | `3.10.8` |\n| [deptry](https://github.com/fpgmaas/deptry) | `0.23.1` | `0.24.0` |\n| [pyarrow](https://github.com/apache/arrow) | `21.0.0` | `23.0.0` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.2.250926` | `2.3.3.260113` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.12.1` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [async-lru](https://github.com/aio-libs/async-lru) | `2.0.5` | `2.1.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.2` | `4.14.3` |\n| [bleach](https://github.com/mozilla/bleach) | `6.2.0` | `6.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.10.5` | `2026.1.4` |\n| [cfgv](https://github.com/asottile/cfgv) | `3.4.0` | `3.5.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.3` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.17` | `1.8.20` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.3.0` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.19.1` | `3.20.3` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.60.1` | `4.61.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.15` | `2.6.16` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.30.1` | `7.1.0` |\n| [ipython](https://github.com/ipython/ipython) | `8.37.0` | `8.38.0` |\n| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.7` | `8.1.8` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.1` | `0.13.0` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.25.1` | `4.26.0` |\n| [jupyter-client](https://github.com/jupyter/jupyter_client) | `8.6.3` | `8.8.0` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [jupyter-server-terminals](https://github.com/jupyter-server/jupyter_server_terminals) | `0.5.3` | `0.5.4` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.4.9` | `4.5.3` |\n| [jupyterlab-widgets](https://github.com/jupyter-widgets/ipywidgets) | `3.0.15` | `3.0.16` |\n| [lark](https://github.com/lark-parser/lark) | `1.3.0` | `1.3.1` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [mistune](https://github.com/lepture/mistune) | `3.1.4` | `3.2.0` |\n| [nbclient](https://github.com/jupyter/nbclient) | `0.10.2` | `0.10.4` |\n| [nbconvert](https://github.com/jupyter/nbconvert) | `7.16.6` | `7.17.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [numba](https://github.com/numba/numba) | `0.62.1` | `0.63.1` |\n| [numexpr](https://github.com/pydata/numexpr) | `2.13.1` | `2.14.1` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.3.0` | `12.1.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.4.0` | `4.5.1` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.23.1` | `0.24.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.0` | `7.2.2` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.23` | `3.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.5` | `3.3.2` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [roman-numerals-py](https://github.com/AA-Turner/roman-numerals) | `3.1.0` | `4.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.1` | `0.30.0` |\n| ruamel-yaml | `0.18.15` | `0.19.1` |\n| [send2trash](https://github.com/arsenetar/send2trash) | `1.8.3` | `2.1.0` |\n| [setuptools](https://github.com/pypa/setuptools) | `80.9.0` | `80.10.2` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8` | `2.8.3` |\n| [starlette](https://github.com/Kludex/starlette) | `0.48.0` | `0.52.1` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.0` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.2` | `6.5.4` |\n| [types-pytz](https://github.com/typeshed-internal/stub_uploader) | `2025.2.0.20250809` | `2025.2.0.20251108` |\n| [tzdata](https://github.com/python/tzdata) | `2025.2` | `2025.3` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.37.0` | `0.40.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.34.0` | `20.36.1` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.14` | `0.5.3` |\n| [webcolors](https://github.com/ubernostrum/webcolors) | `24.11.1` | `25.10.0` |\n| [websocket-client](https://github.com/websocket-client/websocket-client) | `1.8.0` | `1.9.0` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n| [widgetsnbextension](http://jupyter.org) | `4.0.14` | `4.0.15` |\n\n\nUpdates `black` from 25.9.0 to 26.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \u003ccode\u003eas\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\nmatching subdirectories (like the previous behavior did), and not just matching root\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/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \u003ccode\u003eas\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\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/psf/black/commit/6305bf1ae645ab7541be4f5028a86239316178eb\"\u003e\u003ccode\u003e6305bf1\u003c/code\u003e\u003c/a\u003e Prepare 2026.1.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e71305bee302f7f9016b228361e5ae69669dca7b\"\u003e\u003ccode\u003ee71305b\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.3.0 to 3.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4961\"\u003e#4961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/21a2a8c2b1d0c8d47bc00cc59591470f6a9e2307\"\u003e\u003ccode\u003e21a2a8c\u003c/code\u003e\u003c/a\u003e Fix Shutdown multiprocessing Manager in schedule_formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4952\"\u003e#4952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e3146cea4245fcee29d007cb45d9faaf63271586\"\u003e\u003ccode\u003ee3146ce\u003c/code\u003e\u003c/a\u003e Bump docker/setup-buildx-action from 3.11.1 to 3.12.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4919\"\u003e#4919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/fe1fbc4fdfa03fa1d460f975b8aca77e4b4f1a4a\"\u003e\u003ccode\u003efe1fbc4\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4923\"\u003e#4923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b4b7fcfe00bb0d99322e07e87fc2f0992f7a4d8\"\u003e\u003ccode\u003e2b4b7fc\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4922\"\u003e#4922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d745be69bfa9d85ec2ef6e5f9b7ec7e253b5e8ab\"\u003e\u003ccode\u003ed745be6\u003c/code\u003e\u003c/a\u003e docs: document --force-exclude for pre-commit workflows (\u003ca href=\"https://redirect.github.com/psf/black/issues/4957\"\u003e#4957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b41acd6ebbe76e18b49286166924f73f01c3fd02\"\u003e\u003ccode\u003eb41acd6\u003c/code\u003e\u003c/a\u003e Various CI and doc refactors (\u003ca href=\"https://redirect.github.com/psf/black/issues/4928\"\u003e#4928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6f43612766da4a2f275b575af0802c3e73b6ed83\"\u003e\u003ccode\u003e6f43612\u003c/code\u003e\u003c/a\u003e Handle pathspec v1 changes (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/200c550aff44372f801a6d826a361cb26f45a504\"\u003e\u003ccode\u003e200c550\u003c/code\u003e\u003c/a\u003e Bump furo from 2025.9.25 to 2025.12.19 in /docs (\u003ca href=\"https://redirect.github.com/psf/black/issues/4933\"\u003e#4933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.9.0...26.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.7 to 7.13.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.2 — 2026-01-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: when Python is installed via symlinks, for example with Homebrew, the\nstandard library files could be incorrectly included in coverage reports.\nThis is now fixed, closing \u003ccode\u003eissue 2115\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: if a data file is created with no read permissions, the combine step\nwould fail completely. Now a warning is issued and the file is skipped.\nCloses \u003ccode\u003eissue 2117\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2115: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2115\"\u003ecoveragepy/coveragepy#2115\u003c/a\u003e\n.. _issue 2117: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2117\"\u003ecoveragepy/coveragepy#2117\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/513e97162536cb94aeb94ed3cbe487ca64d13e07\"\u003e\u003ccode\u003e513e971\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/27a8230cf0ef73abca824d2a8622235d9ad8ab96\"\u003e\u003ccode\u003e27a8230\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/27d8daac216ffef80276515b22cf679f9fabc422\"\u003e\u003ccode\u003e27d8daa\u003c/code\u003e\u003c/a\u003e refactor: plural does more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2f248cf095fc49d3599c39befdea6a5552ccd23\"\u003e\u003ccode\u003ea2f248c\u003c/code\u003e\u003c/a\u003e fix: stdlib might be through a symlink. \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2115\"\u003e#2115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/bc52a22953759f71c291d31e7d17faf9903c0667\"\u003e\u003ccode\u003ebc52a22\u003c/code\u003e\u003c/a\u003e debug: re-organize Matchers to show more of what they do\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/f338d816ba7fcd23934a9397d15450593f0f20d9\"\u003e\u003ccode\u003ef338d81\u003c/code\u003e\u003c/a\u003e debug: build is a tuple, don't show it on two lines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/92020e469ab6c80cbe24786d0250a571d5f569cf\"\u003e\u003ccode\u003e92020e4\u003c/code\u003e\u003c/a\u003e refactor(test): convert to parametrized\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/6387d0a60d80cb96231ad32fe81be47cddfe1c78\"\u003e\u003ccode\u003e6387d0a\u003c/code\u003e\u003c/a\u003e test: let (most) tests run with no network\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1d31e33cfe0ccef7d87c1f0c6219f55a3d9b5eee\"\u003e\u003ccode\u003e1d31e33\u003c/code\u003e\u003c/a\u003e build: workflows sometimes need more than 10 min\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/62949782b7810d8ffc228ba0e00f81c2ab81cda7\"\u003e\u003ccode\u003e6294978\u003c/code\u003e\u003c/a\u003e refactor: an error message is now uniform across versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.10.7...7.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.9.25 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.09.25 -- Gleaming Green\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChange the dark mode code back to \u003ccode\u003enative\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.07.19 -- Frozen Flame\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Switch to accessible-pygments themes\u003c/li\u003e\n\u003cli\u003e✨ Prefetch the sidebar logos\u003c/li\u003e\n\u003cli\u003e✨ Fix flickering header drop shadow on Safari\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003erel=edit\u003c/code\u003e attribute to \u0026quot;Edit this page\u0026quot; link/icon\u003c/li\u003e\n\u003cli\u003eBump NodeJS and npm dependency versions\u003c/li\u003e\n\u003cli\u003eBump Saas \u0026amp; Webpack major versions\u003c/li\u003e\n\u003cli\u003eImprove current page detection to be resilient to sticky elements above header\u003c/li\u003e\n\u003cli\u003eModernise Sass and use \u003ccode\u003e@use\u003c/code\u003e + \u003ccode\u003e@forward\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove top of code \u003ccode\u003eborder-radius\u003c/code\u003e with captions\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;debug printf\u0026quot; for headerTop value\u003c/li\u003e\n\u003cli\u003eUse distinct images for light and dark mode in the documentation\u003c/li\u003e\n\u003cli\u003eUse the modern Saas Modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.08.06 -- Energetic Eminence\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 8\u003c/li\u003e\n\u003cli\u003e✨ Add smoother transitions between breakpoints\u003c/li\u003e\n\u003cli\u003eIncrease specificity of table-wrapper selector\u003c/li\u003e\n\u003cli\u003eAvoid page breaks inside paragraphs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.07.18 -- Dull Denim\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove how icons are handled and aligned.\u003c/li\u003e\n\u003cli\u003eImprove scroll event handler.\u003c/li\u003e\n\u003cli\u003eHide the copybutton by default.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003esource_view_link\u003c/code\u003e configuration handling.\u003c/li\u003e\n\u003cli\u003eFix close tag on pencil icon.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.05.06 -- Cheerful Cerulean\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add new custom icons for auto mode, reflecting the currently active theme.\u003c/li\u003e\n\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\u003c/code\u003e\u003c/a\u003e Back to development\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.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.3.0 to 4.5.1\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.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\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.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\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/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\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/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\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/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\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/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\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/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\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/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\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/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.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.13.3 to 0.14.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-22.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve required parentheses in lambda bodies (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22747\"\u003e#22747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCombine range suppression code diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22613\"\u003e#22613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Second positional argument to \u003ccode\u003eAsset\u003c/code\u003e/\u003ccode\u003eDataset\u003c/code\u003e should not be a dictionary (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22453\"\u003e#22453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Detect duplicate entries in \u003ccode\u003e__all__\u003c/code\u003e (\u003ccode\u003eRUF068\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22114\"\u003e#22114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Allow shadowing non-builtin bindings (\u003ccode\u003eUP029\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22749\"\u003e#22749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pie\u003c/code\u003e] Detect duplicated declared class fields in \u003ccode\u003ePIE794\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22717\"\u003e#22717\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-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e, \u003ccode\u003e__enter__\u003c/code\u003e, \u003ccode\u003e__aenter__\u003c/code\u003e in \u003ccode\u003ePYI034\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22798\"\u003e#22798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Support \u003ccode\u003echeck\u003c/code\u003e parameter in \u003ccode\u003ePT011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22725\"\u003e#22725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add exception for \u003ccode\u003ectypes.Structure._fields_\u003c/code\u003e (\u003ccode\u003eRUF012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22559\"\u003e#22559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMany fixes are now marked unsafe if they would remove comments:\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22656\"\u003e\u003ccode\u003eB009\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22657\"\u003e\u003ccode\u003eB010\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22658\"\u003e\u003ccode\u003eB013\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22659\"\u003e\u003ccode\u003eB014\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22632\"\u003e\u003ccode\u003eB033\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22662\"\u003e\u003ccode\u003eSIM910\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22661\"\u003e\u003ccode\u003eSIM911\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP007\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22774\"\u003e\u003ccode\u003eUP039\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22773\"\u003e\u003ccode\u003eUP041\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP045\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22767\"\u003e\u003ccode\u003eFURB105\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22681\"\u003e\u003ccode\u003eFURB116\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22680\"\u003e\u003ccode\u003eFURB136\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22679\"\u003e\u003ccode\u003eFURB140\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22670\"\u003e\u003ccode\u003eFURB145\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22669\"\u003e\u003ccode\u003eFURB154\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22668\"\u003e\u003ccode\u003eFURB157\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22667\"\u003e\u003ccode\u003eFURB164\u003c/code\u003e\u003c/a\u003e,\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22666\"\u003e\u003ccode\u003eFURB181\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22665\"\u003e\u003ccode\u003eFURB188\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22663\"\u003e\u003ccode\u003eRUF019\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22664\"\u003e\u003ccode\u003eRUF020\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--exit-non-zero-on-format\u003c/code\u003e to formatter exit codes section (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22761\"\u003e#22761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eFastAPI\u003c/code\u003e] Document fix safety for \u003ccode\u003eFAST001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22655\"\u003e#22655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Tweak explanation to focus on latency/efficiency tradeoff (\u003ccode\u003eASYNC110\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22715\"\u003e#22715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePD002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22561\"\u003e#22561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB101\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22770\"\u003e#22770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22769\"\u003e#22769\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caiquejjx\"\u003e\u003ccode\u003e@​caiquejjx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sjyangkevin\"\u003e\u003ccode\u003e@​sjyangkevin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MeGaGiGaGon\"\u003e\u003ccode\u003e@​MeGaGiGaGon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leandrobbraga\"\u003e\u003ccode\u003e@​leandrobbraga\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.14\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-22.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve required parentheses in lambda bodies (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22747\"\u003e#22747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCombine range suppression code diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22613\"\u003e#22613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Second positional argument to \u003ccode\u003eAsset\u003c/code\u003e/\u003ccode\u003eDataset\u003c/code\u003e should not be a dictionary (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22453\"\u003e#22453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Detect duplicate entries in \u003ccode\u003e__all__\u003c/code\u003e (\u003ccode\u003eRUF068\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22114\"\u003e#22114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Allow shadowing non-builtin bindings (\u003ccode\u003eUP029\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22749\"\u003e#22749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pie\u003c/code\u003e] Detect duplicated declared class fields in \u003ccode\u003ePIE794\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22717\"\u003e#22717\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-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e, \u003ccode\u003e__enter__\u003c/code\u003e, \u003ccode\u003e__aenter__\u003c/code\u003e in \u003ccode\u003ePYI034\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22798\"\u003e#22798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Support \u003ccode\u003echeck\u003c/code\u003e parameter in \u003ccode\u003ePT011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22725\"\u003e#22725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add exception for \u003ccode\u003ectypes.Structure._fields_\u003c/code\u003e (\u003ccode\u003eRUF012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22559\"\u003e#22559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMany fixes are now marked unsafe if they would remove comments:\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22656\"\u003e\u003ccode\u003eB009\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22657\"\u003e\u003ccode\u003eB010\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22658\"\u003e\u003ccode\u003eB013\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22659\"\u003e\u003ccode\u003eB014\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22632\"\u003e\u003ccode\u003eB033\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22662\"\u003e\u003ccode\u003eSIM910\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22661\"\u003e\u003ccode\u003eSIM911\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP007\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22774\"\u003e\u003ccode\u003eUP039\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22773\"\u003e\u003ccode\u003eUP041\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP045\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22767\"\u003e\u003ccode\u003eFURB105\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22681\"\u003e\u003ccode\u003eFURB116\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22680\"\u003e\u003ccode\u003eFURB136\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22679\"\u003e\u003ccode\u003eFURB140\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22670\"\u003e\u003ccode\u003eFURB145\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22669\"\u003e\u003ccode\u003eFURB154\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22668\"\u003e\u003ccode\u003eFURB157\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22667\"\u003e\u003ccode\u003eFURB164\u003c/code\u003e\u003c/a\u003e,\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22666\"\u003e\u003ccode\u003eFURB181\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22665\"\u003e\u003ccode\u003eFURB188\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22663\"\u003e\u003ccode\u003eRUF019\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22664\"\u003e\u003ccode\u003eRUF020\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--exit-non-zero-on-format\u003c/code\u003e to formatter exit codes section (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22761\"\u003e#22761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eFastAPI\u003c/code\u003e] Document fix safety for \u003ccode\u003eFAST001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22655\"\u003e#22655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Tweak explanation to focus on latency/efficiency tradeoff (\u003ccode\u003eASYNC110\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22715\"\u003e#22715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePD002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22561\"\u003e#22561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB101\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22770\"\u003e#22770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22769\"\u003e#22769\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caiquejjx\"\u003e\u003ccode\u003e@​caiquejjx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sjyangkevin\"\u003e\u003ccode\u003e@​sjyangkevin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MeGaGiGaGon\"\u003e\u003ccode\u003e@​MeGaGiGaGon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leandrobbraga\"\u003e\u003ccode\u003e@​leandrobbraga\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/8b2e7b36f246b990fe473a84eef25ff429e59ecf\"\u003e\u003ccode\u003e8b2e7b3\u003c/code\u003e\u003c/a\u003e Prepare release v0.14.14 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22813\"\u003e#22813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4c7d1f50fd8d1baf06a3c8885ecd0ded0113d383\"\u003e\u003ccode\u003e4c7d1f5\u003c/code\u003e\u003c/a\u003e [ty] Infer \u003ccode\u003eTypedDict\u003c/code\u003e types with \u0026gt;=1 required key as being always truthy (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b7de4341535ff2b299695335e0a7b9ebaf297348\"\u003e\u003ccode\u003eb7de434\u003c/code\u003e\u003c/a\u003e add CCfW hooks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22803\"\u003e#22803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b912dfc8788f8f8c351767899df6b72ce3366352\"\u003e\u003ccode\u003eb912dfc\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1ff062d1cccb8025de184a55c6dfe469a4293249\"\u003e\u003ccode\u003e1ff062d\u003c/code\u003e\u003c/a\u003e [ty] Improve completion rankings for raise-from/except contexts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22775\"\u003e#22775\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7e408a51d24db2bca248bb90f2f7938f83efd22b\"\u003e\u003ccode\u003e7e408a5\u003c/code\u003e\u003c/a\u003e Update dependency wrangler to v4.59.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22793\"\u003e#22793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ceb876b82300bd237d11e3eb77c46fcf3d3afe85\"\u003e\u003ccode\u003eceb876b\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e,...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c5b4ee68c90faf0e609fa6553a171a7ba60ebdcb\"\u003e\u003ccode\u003ec5b4ee6\u003c/code\u003e\u003c/a\u003e [ty] Support solving generics involving PEP 695 type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22678\"\u003e#22678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b9a61293153f43df9963c727539309b76ac4756d\"\u003e\u003ccode\u003eb9a6129\u003c/code\u003e\u003c/a\u003e [ty] Improve support for kwarg splats in dictionary literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22781\"\u003e#22781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f516d47ceb7f6a0c3a95eaaa2c7451a32b5d7120\"\u003e\u003ccode\u003ef516d47\u003c/code\u003e\u003c/a\u003e Update contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.3...0.14.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.2 to 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\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/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\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/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `matplotlib` from 3.10.6 to 3.10.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/matplotlib/matplotlib/releases\"\u003ematplotlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eREL: v3.10.8\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eThe primary highlights of this release are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProperly allow freethreaded mode in the MacOS backend\u003c/li\u003e\n\u003cli\u003eBetter error handling for MacOS backend\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eREL: v3.10.7\u003c/h2\u003e\n\u003cp\u003eThis is the latest bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eThe most important update in this release is that the minimum version\nof \u003ccode\u003epyparsing\u003c/code\u003e has been updated to version 3.0.\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/matplotlib/matplotlib/commit/1392cbe3c79cdb93f9282747841d648770f60249\"\u003e\u003ccode\u003e1392cbe\u003c/code\u003e\u003c/a\u003e REL: v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/0b9ebb35f8310f22eb7f932b2ae14befb1f40b6f\"\u003e\u003ccode\u003e0b9ebb3\u003c/code\u003e\u003c/a\u003e Doc release prep v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/bc7b5c4377ce2544e8936255c51c1ff7cd0c5a85\"\u003e\u003ccode\u003ebc7b5c4\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.7-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/86b38d3f29aa2af2ddcbd1895433117caa0fba47\"\u003e\u003ccode\u003e86b38d3\u003c/code\u003e\u003c/a\u003e Github stats v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/9512188e42f9d221f83869113c44f99fe1832a0f\"\u003e\u003ccode\u003e9512188\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30717\"\u003e#30717\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30714-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/d300769285e2c920804134e40ec83837eabe16d8\"\u003e\u003ccode\u003ed300769\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30714\"\u003e#30714\u003c/a\u003e: FIX: Gracefully handle numpy arrays as input to check_in_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/799bc9561daea5b5578f888817cb45c9321a0463\"\u003e\u003ccode\u003e799bc95\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30711\"\u003e#30711\u003c/a\u003e from ngoldbaum/v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/134000ba19a4354da2ad1084627039e05c936754\"\u003e\u003ccode\u003e134000b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30697\"\u003e#30697\u003c/a\u003e from ngoldbaum/fix-plotting-on-worker-threads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/5b8e219d70f1daa443330eb6a5a6211506b37362\"\u003e\u003ccode\u003e5b8e219\u003c/code\u003e\u003c/a\u003e TST: Run macosx backends in a subprocess\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/878e71a95006d3aec9505f3bd836968951fdd163\"\u003e\u003ccode\u003e878e71a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/29810\"\u003e#29810\u003c/a\u003e: Declare free-threaded support in MacOS backend extension ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.6...v3.10.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `deptry` from 0.23.1 to 0.24.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fpgmaas/deptry/releases\"\u003edeptry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003ch4\u003ePython 3.9 support dropped\u003c/h4\u003e\n\u003cp\u003eSupport for Python 3.9 has been dropped, as it has reached its end of life.\u003c/p\u003e\n\u003ch4\u003ePyPy 3.10 support dropped, 3.11 added\u003c/h4\u003e\n\u003cp\u003eSupport for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd GitHub Actions annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-pre-system/pull/122","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-pre-system/issues/122","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/122/packages"},{"uuid":"3861652377","node_id":"PR_kwDOAYRY2s6_qPwm","number":5169,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 37 updates","user":"dependabot[bot]","labels":["Maintenance"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-02T06:05:06.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-27T17:27:19.000Z","updated_at":"2026-02-02T06:05:07.000Z","time_to_close":477467,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":37,"packages":[{"name":"django","old_version":"4.2.26","new_version":"6.0.1","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"django-pint","old_version":"0.7.3","new_version":"1.0.4","repository_url":"https://github.com/CarliJoy/django-pint"},{"name":"django-post-office","old_version":"3.10.1","new_version":"3.11.0","repository_url":"https://github.com/ui/django-post_office"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.14","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10.1","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.8","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.3.1","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [django](https://github.com/django/django), [psycopg2-binary](https://github.com/psycopg/psycopg2), [celery](https://github.com/celery/celery), [hiredis](https://github.com/redis/hiredis-py), [django-compressor](https://github.com/django-compressor/django-compressor), [django-pint](https://github.com/CarliJoy/django-pint), [django-post-office](https://github.com/ui/django-post_office), [drf-yasg](https://github.com/axnsan12/drf-yasg), [jellyfish](https://jellyfish.jpt.sh/), [markdown](https://github.com/Python-Markdown/markdown), [pyyaml](https://github.com/yaml/pyyaml), [xlsxwriter](https://github.com/jmcnamara/XlsxWriter), [xmlschema](https://github.com/sissaschool/xmlschema), [lark](https://github.com/lark-parser/lark), [pandas](https://github.com/pandas-dev/pandas), [simple-salesforce](https://github.com/simple-salesforce/simple-salesforce), [shapely](https://github.com/shapely/shapely), [django-treebeard](https://github.com/django-treebeard/django-treebeard), [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth), [importlib-metadata](https://github.com/python/importlib_metadata), [boto3](https://github.com/boto/boto3), [django-ses](https://github.com/django-ses/django-ses), [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/), [coverage](https://github.com/coveragepy/coveragepy), [coveralls](https://github.com/TheKevJames/coveralls-python), [tox](https://github.com/tox-dev/tox), [psutil](https://github.com/giampaolo/psutil), [faker](https://github.com/joke2k/faker), [vcrpy](https://github.com/kevin1024/vcrpy), [pytest](https://github.com/pytest-dev/pytest), [pre-commit](https://github.com/pre-commit/pre-commit), [sphinx](https://github.com/sphinx-doc/sphinx), [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling), [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme), [docutils](https://github.com/rtfd/recommonmark), [hypothesis](https://github.com/HypothesisWorks/hypothesis) and [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) to permit the latest version.\nUpdates `django` from 4.2.26 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/85eb963c5297fb285aecf4a90c97141a1b9c5bee\"\u003e\u003ccode\u003e85eb963\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac4a5509e3a6f2e1099ea659e0c1eb3ed4e9e00f\"\u003e\u003ccode\u003eac4a550\u003c/code\u003e\u003c/a\u003e [6.0.x] Added release date for 6.0.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/dcfc5b04ee8af8284e772a2f3619cd8affb1c07a\"\u003e\u003ccode\u003edcfc5b0\u003c/code\u003e\u003c/a\u003e [6.0.x] Added release date for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/42bab76258162e1df77d080aa69cac5d803ae90a\"\u003e\u003ccode\u003e42bab76\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36843\"\u003e#36843\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django/django/issues/36793\"\u003e#36793\u003c/a\u003e -- Reverted \u0026quot;Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/27489\"\u003e#27489\u003c/a\u003e -- Renamed permissions...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/764af478be8c25c186d27031c50c9a1d0697781b\"\u003e\u003ccode\u003e764af47\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/33647\"\u003e#33647\u003c/a\u003e -- Fixed silent data truncation in bulk_create on Postgres.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b7b5465b1c026dda7de646fca15ca1e97886d021\"\u003e\u003ccode\u003eb7b5465\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36829\"\u003e#36829\u003c/a\u003e -- Reverted value of ClearableFileInput.use_fieldset to ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/90daa655486c7fc69e9dad41c5e96f00339a3b9b\"\u003e\u003ccode\u003e90daa65\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/30515\"\u003e#30515\u003c/a\u003e -- Documented resolve_url() in docs/topics/http/shortcut...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d35daf8600a66c0ff20e36f82969df61a7fc4981\"\u003e\u003ccode\u003ed35daf8\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36796\"\u003e#36796\u003c/a\u003e -- Handled lazy routes correctly in RoutePattern.match().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/16107ab710dc23d5ea0aa17da6bf29fe89b61bb0\"\u003e\u003ccode\u003e16107ab\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36810\"\u003e#36810\u003c/a\u003e -- Avoided infinite recursion in LazyNonce.\u003cstrong\u003erepr\u003c/strong\u003e().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/774543ed4feb37916071e81c0d0b81ba514333fa\"\u003e\u003ccode\u003e774543e\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36305\"\u003e#36305\u003c/a\u003e -- Added documentation indentation guidelines to contrib...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.26...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by \u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Revoked tasks now immediately update backend status to REVOKED by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9869\"\u003ecelery/celery#9869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10049\"\u003ecelery/celery#10049\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/celery/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option by \u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10020\"\u003ecelery/celery#10020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup by \u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereliable prefork detection by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10023\"\u003ecelery/celery#10023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter coverage by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10029\"\u003ecelery/celery#10029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example by \u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10032\"\u003ecelery/celery#10032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10033\"\u003ecelery/celery#10033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10037\"\u003ecelery/celery#10037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/celery/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2026-01-04\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string ([#10045](https://github.com/celery/celery/issues/10045))\n- Bugfix: Revoked tasks now immediately update backend status to REVOKED ([#9869](https://github.com/celery/celery/issues/9869))\n- Prepare for release: v5.6.2 ([#10049](https://github.com/celery/celery/issues/10049))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-12-29\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10013\"\u003e#10013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9986\"\u003e#9986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10020\"\u003e#10020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereliable prefork detection (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10023\"\u003e#10023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebetter coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10030\"\u003e#10030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10032\"\u003e#10032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6a43c846f183ef0cbade24f4b9a8f7a6ea113b44\"\u003e\u003ccode\u003e6a43c84\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10049\"\u003e#10049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/333a82f746734151c5cbe848916085455b0a3748\"\u003e\u003ccode\u003e333a82f\u003c/code\u003e\u003c/a\u003e Bugfix: Revoked tasks now immediately update backend status to REVOKED (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9869\"\u003e#9869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/9d6ab110d947270c4edf0b42454266d2954e653d\"\u003e\u003ccode\u003e9d6ab11\u003c/code\u003e\u003c/a\u003e Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeEr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21dbc73f81d2fae058de49e665afaa1cd92da5c0\"\u003e\u003ccode\u003e21dbc73\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/ba20bed7723c684d12ddd62d6a7c0c0d901b3351\"\u003e\u003ccode\u003eba20bed\u003c/code\u003e\u003c/a\u003e Only use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21675299bc2d10c648448ec5221136e07c1eec1a\"\u003e\u003ccode\u003e2167529\u003c/code\u003e\u003c/a\u003e Stop importing pytest_subtests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0527296acb1f1790788301d4395ba6d5ce2a9704\"\u003e\u003ccode\u003e0527296\u003c/code\u003e\u003c/a\u003e Bump google-cloud-firestore from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5f8659bdba4561796d66e938a1e2c71d4489562f\"\u003e\u003ccode\u003e5f8659b\u003c/code\u003e\u003c/a\u003e Clarify 'result_extended' setting usage in tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f19db7008682c782d85e69b5ce736970491752ea\"\u003e\u003ccode\u003ef19db70\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10028\"\u003e#10028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6da72bde60553a1c350eef1e17d834d004ed099d\"\u003e\u003ccode\u003e6da72bd\u003c/code\u003e\u003c/a\u003e better coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on 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/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 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/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-pint` from 0.7.3 to 1.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CarliJoy/django-pint/releases\"\u003edjango-pint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for expressions (subqueries) in bulk updates (\u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/119\"\u003eCarliJoy/django-pint#119\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect minimal Django version to 5.2 in pyproject.toml\u003c/li\u003e\n\u003cli\u003eFix documentation builds\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFix PyPI signatures\u003c/h2\u003e\n\u003cp\u003eFix broken pipeline for PyPI Sigstore uploads. No source code changes.\u003c/p\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cp\u003eFix a problem with the release pipeline. No source code changes.\u003c/p\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMakefile for easier dev setup by \u003ca href=\"https://github.com/mmarras\"\u003e\u003ccode\u003e@​mmarras\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/100\"\u003eCarliJoy/django-pint#100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etry unit conversion instead of literal dimensionality check \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/99\"\u003e#99\u003c/a\u003e by \u003ca href=\"https://github.com/mmarras\"\u003e\u003ccode\u003e@​mmarras\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/101\"\u003eCarliJoy/django-pint#101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003econvert numeric types to str before calling Decimal by \u003ca href=\"https://github.com/SamuelJennings\"\u003e\u003ccode\u003e@​SamuelJennings\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/108\"\u003eCarliJoy/django-pint#108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate to pyproject and ruff by \u003ca href=\"https://github.com/CarliJoy\"\u003e\u003ccode\u003e@​CarliJoy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/118\"\u003eCarliJoy/django-pint#118\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/mmarras\"\u003e\u003ccode\u003e@​mmarras\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/100\"\u003eCarliJoy/django-pint#100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Adiorz\"\u003e\u003ccode\u003e@​Adiorz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/117\"\u003eCarliJoy/django-pint#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CarliJoy/django-pint/compare/v0.7.3...v1.0.0\"\u003ehttps://github.com/CarliJoy/django-pint/compare/v0.7.3...v1.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CarliJoy/django-pint/blob/main/CHANGELOG.rst\"\u003edjango-pint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion 1.0.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for expressions (subqueries) in bulk updates (\u003ccode\u003eby @Adiorz, issue [#119](https://github.com/CarliJoy/django-pint/issues/119) \u0026lt;https://github.com/CarliJoy/django-pint/issues/119\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect minimal Django version to 5.2 in pyproject.toml\u003c/li\u003e\n\u003cli\u003eFix documentation builds\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix broken pipeline for PyPI Sigstore uploads. No source code changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix Problem in Publish Pipeline using old upload-artifact (no source code changes)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eStart following \u003ccode\u003eSemVer \u0026lt;https://semver.org/spec/v2.0.0.html\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eConvert numeric types to str before calling Decimal \u003ccode\u003e[#101](https://github.com/CarliJoy/django-pint/issues/101) by @mmarra \u0026lt;https://github.com/CarliJoy/django-pint/pull/101\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eTry unit conversion instead of literal dimensionality check \u003ccode\u003e[#108](https://github.com/CarliJoy/django-pint/issues/108)  by @SamuelJennings \u0026lt;https://github.com/CarliJoy/django-pint/pull/108\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8 and 3.9 and Django 3.2\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12, 3.13 and 3.14 and Django 6.0 \u003ccode\u003e[#116](https://github.com/CarliJoy/django-pint/issues/116) by @Adiorz \u0026lt;https://github.com/CarliJoy/django-pint/pull/117\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eModernize project setup: Use \u003ccode\u003epyproject.toml\u003c/code\u003e only and \u003ccode\u003eruff\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.7.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix conversion of number input to DecimalField (\u003ccode\u003eissue [#106](https://github.com/CarliJoy/django-pint/issues/106) \u0026lt;https://github.com/CarliJoy/django-pint/issues/106\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.7.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix wrong unit display in widget (\u003ccode\u003eissue [#43](https://github.com/CarliJoy/django-pint/issues/43) \u0026lt;https://github.com/CarliJoy/django-pint/issues/43\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.7.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003edrop support for Django (\u0026lt;3.2) and Python Versions (\u0026lt;3.7) as they reached EOL\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003ePositiveIntegerQuantityField\u003c/code\u003e (\u003ccode\u003emerge request [#39](https://github.com/CarliJoy/django-pint/issues/39) from jwygoda\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003efix display of negative and scientific numbers in Widget (\u003ccode\u003emerger request [#41](https://github.com/CarliJoy/django-pint/issues/41) from mikeford3\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.6.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix error with Django 3.2 (\u003ccode\u003eissue [#36](https://github.com/CarliJoy/django-pint/issues/36)\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eremove PrecisionError\u003c/li\u003e\n\u003cli\u003erestructure function a bit, add more type annotations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.6.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eonly a internal technical release as the PyPi token had to be removed\ndue to security breach before and no new token was set before\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/a1179f59d71b6b1ad1d9e9e2f59c191d8d1c4621\"\u003e\u003ccode\u003ea1179f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/120\"\u003e#120\u003c/a\u003e from Adiorz/fix/support-expressions-in-bulk-updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/432792b2406cab189be3082057491b1c6b1cbb9f\"\u003e\u003ccode\u003e432792b\u003c/code\u003e\u003c/a\u003e docs: added author and issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/6d8b267d264a2c834aea9beaeb425b3e9707e14b\"\u003e\u003ccode\u003e6d8b267\u003c/code\u003e\u003c/a\u003e docs: add patch release entry to changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/9d2514bf98afd17ef83fc41375fffd20de1dd18f\"\u003e\u003ccode\u003e9d2514b\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/CarliJoy/django-pint/commit/342cd92ac606b34420f6b8223b8903b92c5ee4f5\"\u003e\u003ccode\u003e342cd92\u003c/code\u003e\u003c/a\u003e fix: support expressions (subqueries) in bulk updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/2ab1034bcc0b5fb99bfd16446d4f0a69e29a8b30\"\u003e\u003ccode\u003e2ab1034\u003c/code\u003e\u003c/a\u003e 👽 update used ci/cd template\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/a4bb6bce1a42bda837d003a10276d3f05ca8a687\"\u003e\u003ccode\u003ea4bb6bc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/116\"\u003e#116\u003c/a\u003e from CarliJoy/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/092c8b8a4c236a98565c7e74a2b082c8c204041e\"\u003e\u003ccode\u003e092c8b8\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/CarliJoy/django-pint/commit/eedda5dd9ff198c1ba4c43d4cc644cd63313f391\"\u003e\u003ccode\u003eeedda5d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/67fa3b9f7af927bedf810fc8694d72452b17fbed\"\u003e\u003ccode\u003e67fa3b9\u003c/code\u003e\u003c/a\u003e Fix minimal django version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/CarliJoy/django-pint/compare/v0.7.3...v1.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-post-office` from 3.10.1 to 3.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ui/django-post_office/releases\"\u003edjango-post-office's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Python 3.14 and Django 6.0 compatibility. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ui/django-post_office/blob/master/CHANGELOG.md\"\u003edjango-post-office's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/825af68a79bce78acb18c945d1f3acd5935a975b\"\u003e\u003ccode\u003e825af68\u003c/code\u003e\u003c/a\u003e Bump version to 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/99be3b50a904d84f35fecb14f6c64575611a2e8a\"\u003e\u003ccode\u003e99be3b5\u003c/code\u003e\u003c/a\u003e Delete publish.yml (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/a360b7946a0b8a777e0764ab7423749f7686716b\"\u003e\u003ccode\u003ea360b79\u003c/code\u003e\u003c/a\u003e Improve tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/fe7c583512845d31685245b783a502bfc221c0c6\"\u003e\u003ccode\u003efe7c583\u003c/code\u003e\u003c/a\u003e Python314 fix (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0556f5eaaffbbbb29bd3db2ad0c2ef2086595971\"\u003e\u003ccode\u003e0556f5e\u003c/code\u003e\u003c/a\u003e Updated test.yml so tests don't get triggered twice (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/00ddbc165e597af2967fa3fcd3f34a66d0659ae3\"\u003e\u003ccode\u003e00ddbc1\u003c/code\u003e\u003c/a\u003e Webhooks (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/936d1ac816ffd3cf734bd77f0bb7ec17082793f3\"\u003e\u003ccode\u003e936d1ac\u003c/code\u003e\u003c/a\u003e Updated README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/91fbc6c28be60288961521520581d20745b3320c\"\u003e\u003ccode\u003e91fbc6c\u003c/code\u003e\u003c/a\u003e Webhook handlers (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0f68aaf444779682ea3d8806a5f46dea1a753e08\"\u003e\u003ccode\u003e0f68aaf\u003c/code\u003e\u003c/a\u003e Merge branch 'webhooks'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/5b7fdf9989517b1e740cc725ae635833dc376a12\"\u003e\u003ccode\u003e5b7fdf9\u003c/code\u003e\u003c/a\u003e Move tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ui/django-post_office/compare/v3.10.1...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.14\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix missing swagger-ui sourcemaps (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/950\"\u003e#950\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e1.21.12\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Bring the bundled swagger ui up to date (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/944\"\u003e#944\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update the logout button to use a POST request. (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/945\"\u003e#945\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a live demo domain (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/946\"\u003e#946\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Handle annotations that are not available at runtime (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/941\"\u003e#941\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.14\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.13\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix missing swagger-ui sourcemaps (:pr:\u003ccode\u003e950\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.12\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Bring the bundled swagger ui up to date (:pr:\u003ccode\u003e944\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update the logout button to use a POST request. (:pr:\u003ccode\u003e945\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a live demo domain (:pr:\u003ccode\u003e946\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Handle annotations that are not available at runtime (:pr:\u003ccode\u003e941\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/7dceb2783db31631785cd15866c9b44540accf9f\"\u003e\u003ccode\u003e7dceb27\u003c/code\u003e\u003c/a\u003e Add version 1.21.14 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/952\"\u003e#952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/763cdd6473eb963ad36987088e697cfd4f744acc\"\u003e\u003ccode\u003e763cdd6\u003c/code\u003e\u003c/a\u003e Add version 1.21.13 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/951\"\u003e#951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a0559fcacd996b76fbbb5ea0d70aa5c314f06e0c\"\u003e\u003ccode\u003ea0559fc\u003c/code\u003e\u003c/a\u003e Add missing swagger-ui sourcemaps (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/950\"\u003e#950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/2bf74d0789b40aafa638c8fc1d4e25ea8340f530\"\u003e\u003ccode\u003e2bf74d0\u003c/code\u003e\u003c/a\u003e Add version 1.21.12 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/948\"\u003e#948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/b421e89667932159562652d3639368667e5d89d9\"\u003e\u003ccode\u003eb421e89\u003c/code\u003e\u003c/a\u003e swagger ui fix (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/944\"\u003e#944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/40fee2bd8be59bb1b112419fdb79cd9a09745306\"\u003e\u003ccode\u003e40fee2b\u003c/code\u003e\u003c/a\u003e Add live demo domain and environment variables (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/1785b84fe129382595790f390f2b983f62b45271\"\u003e\u003ccode\u003e1785b84\u003c/code\u003e\u003c/a\u003e Update logout button to use POST request. (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0522cc1d9b12df97c2b01cb94ad1587933e8d52c\"\u003e\u003ccode\u003e0522cc1\u003c/code\u003e\u003c/a\u003e Rename github actions files to .yaml (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/3a381234c9a6986bbd44867632ff3cdc78ffe352\"\u003e\u003ccode\u003e3a38123\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/943\"\u003e#943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/b252a0d8f8f87b9ef6417827ae631cf11a6262a1\"\u003e\u003ccode\u003eb252a0d\u003c/code\u003e\u003c/a\u003e Handle annotations not available at runtime (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/941\"\u003e#941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.10.1] - 2026-01-21\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.1] - 2025-06-18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/e5fa5b86e8ec380cbc520cfc637d72c779e5c601\"\u003e\u003ccode\u003ee5fa5b8\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/f9253495f5d9919f2fdd5e147832b5fc21330f65\"\u003e\u003ccode\u003ef925349\u003c/code\u003e\u003c/a\u003e More HTML fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/9933a0a4699f3dea91f46528a2bf54863f531c08\"\u003e\u003ccode\u003e9933a0a\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Allow reference links with backticks\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/07dfa4eb43f7a2ab3181b4f842a960a03a6c1221\"\u003e\u003ccode\u003e07dfa4e\u003c/code\u003e\u003c/a\u003e Allow reference links with backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/fb6b27a6ff90980b5bcb0cd51528a7c9dc3a93ca\"\u003e\u003ccode\u003efb6b27a\u003c/code\u003e\u003c/a\u003e Fix infinite loop when text contains multiple unclosed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/89112c293f7b399ae8808f3a06306f46601e9684\"\u003e\u003ccode\u003e89112c2\u003c/code\u003e\u003c/a\u003e Make the docs build successfully with mkdocstrings-python 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/961856ceb30623b929d8b7abdf5ed7074db7184c\"\u003e\u003ccode\u003e961856c\u003c/code\u003e\u003c/a\u003e Update link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/2b49115b1002142afbd84b3002f13c0e98a0f487\"\u003e\u003ccode\u003e2b49115\u003c/code\u003e\u003c/a\u003e Ensure nested elements inside inline comments are properly unescaped.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.8 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\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/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.8...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.3.1 (2026-01-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enormalize_url()\u003c/code\u003e: workaround for issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/467\"\u003e#467\u003c/a\u003e (UNC paths with Python \u0026lt; 3.12.5)\u003c/li\u003e\n\u003cli\u003eMETA_SCHEMA and BASE_SCHEMA paths converted to 'file' URL scheme\u003c/li\u003e\n\u003cli\u003eClean optional dependencies\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.3.0 (2026-01-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd custom XPath parser for find/findall/iterfind APIs on schemas for match\nsingleton sequence also if position is a number greater than 1 in predicate\nexpression (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove build of XSD elements and groups, using a three-state built flag for\ncomponents\u003c/li\u003e\n\u003cli\u003eExtend and fix memory tests (Python 3.14+ seems to consume more memory)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and add development support for Python 3.15\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.3.1\u003c/code\u003e_ (2026-01-17)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003enormalize_url(): workaround for issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/467\"\u003e#467\u003c/a\u003e (UNC paths with Python \u0026lt; 3.12.5)\u003c/li\u003e\n\u003cli\u003eMETA_SCHEMA and BASE_SCHEMA paths converted to 'file' URL scheme\u003c/li\u003e\n\u003cli\u003eClean optional dependencies\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ccode\u003ev4.3.0\u003c/code\u003e_ (2026-01-03)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd custom XPath parser for find/findall/iterfind APIs on schemas for match\nsingleton sequence also if position is a number greater than 1 in predicate\nexpression (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove build of XSD elements and groups, using a three-state built flag for\ncomponents\u003c/li\u003e\n\u003cli\u003eExtend and fix memory tests (Python 3.14+ seems to consume more memory)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and add development support for Python 3.15\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/commit/64b103f211f292b6e076c404dfa83e2239b1341e\"\u003e\u003ccode\u003e64b103f\u003c/code\u003e\u003c/a\u003e Add a test for meta-schema URLs and relax memory test for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/508d1a2b18f57a0bc5f959da5f219e590906ef42\"\u003e\u003ccode\u003e508d1a2\u003c/code\u003e\u003c/a\u003e Update bugfix release information and clean deps of pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/4fc64bd950dc8a15788f05210a99acc56d0782a0\"\u003e\u003ccode\u003e4fc64bd\u003c/code\u003e\u003c/a\u003e Refactor LocationPath and add a workaround for issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/467\"\u003e#467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dfec443d37df2a3cd0b2fef74f394d204d0ec90e\"\u003e\u003ccode\u003edfec443\u003c/code\u003e\u003c/a\u003e Don't serialize cached properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/91c19568f65b635a12caa228ce6e882691f15765\"\u003e\u003ccode\u003e91c1956\u003c/code\u003e\u003c/a\u003e Add caching module with class SchemaCache\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/2bfb931b757b42fd19162f6232c1fa088f2e1348\"\u003e\u003ccode\u003e2bfb931\u003c/code\u003e\u003c/a\u003e Update CI tests and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/a1d7d3c71365284fcc06b9f20cc7d48feeb2e4ce\"\u003e\u003ccode\u003ea1d7d3c\u003c/code\u003e\u003c/a\u003e Change built status of components from bool to optional bool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/ce822bd349500c29f13da109e46c5b4f5906f129\"\u003e\u003ccode\u003ece822bd\u003c/code\u003e\u003c/a\u003e Extend and fix memory tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/fa41056ef9ae6a4311f25a885d40c73a4a3c5bb6\"\u003e\u003ccode\u003efa41056\u003c/code\u003e\u003c/a\u003e Add a custom XPath parser for schema find/findall/iterfind APIs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/b237528d8a6fa99e235558be9c552f580582c99d\"\u003e\u003ccode\u003eb237528\u003c/code\u003e\u003c/a\u003e Add a test with UNC path\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colm...\n\n_Description has been truncated_","html_url":"https://github.com/SEED-platform/seed/pull/5169","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SEED-platform%2Fseed/issues/5169","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5169/packages"},{"uuid":"3829040778","node_id":"PR_kwDOPWu_BM69-Pxm","number":35,"state":"closed","title":"Bump the minor-update group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-02T10:04:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-19T10:28:36.000Z","updated_at":"2026-02-02T10:04:38.000Z","time_to_close":1208160,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":9,"packages":[{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"numba","old_version":"0.60.0","new_version":"0.61.2","repository_url":"https://github.com/numba/numba"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"triton","old_version":"3.1.0","new_version":"3.6.0+git9844da95"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"depyf","old_version":"0.18.0","new_version":"0.20.0","repository_url":"https://github.com/thuml/depyf"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx-book-theme","old_version":"1.0.1","new_version":"1.1.4","repository_url":"https://github.com/executablebooks/sphinx-book-theme"},{"name":"sphinx-togglebutton","old_version":"0.3.2","new_version":"0.4.4","repository_url":"https://github.com/executablebooks/sphinx-togglebutton"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [numba](https://github.com/numba/numba) | `0.60.0` | `0.61.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.4.0` |\n| triton | `3.1.0` | `3.6.0+git9844da95` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [depyf](https://github.com/thuml/depyf) | `0.18.0` | `0.20.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.3.0` |\n| [sphinx-book-theme](https://github.com/executablebooks/sphinx-book-theme) | `1.0.1` | `1.1.4` |\n| [sphinx-togglebutton](https://github.com/executablebooks/sphinx-togglebutton) | `0.3.2` | `0.4.4` |\n\n\nUpdates `audioread` from 3.0.1 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/fdd0c2e7f20f3a9b9110c454a140108097236268\"\u003e\u003ccode\u003efdd0c2e\u003c/code\u003e\u003c/a\u003e Increment version to 3.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ec7b3bcb29781132b58affd1053d63da64ed9383\"\u003e\u003ccode\u003eec7b3bc\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13 (\u003ca href=\"https://redirect.github.com/beetbox/audioread/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/bfee9a74d6c389a4d60053cf1d1c6af580fae2e6\"\u003e\u003ccode\u003ebfee9a7\u003c/code\u003e\u003c/a\u003e run tests on python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/b671e436cf5c0c6006f190e3561fc680773237be\"\u003e\u003ccode\u003eb671e43\u003c/code\u003e\u003c/a\u003e Add standard-aifc and standard-sunau as dependencies for python 3.13 and above.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ef77a506b641cdeca11b1e782105e29f8f93eb81\"\u003e\u003ccode\u003eef77a50\u003c/code\u003e\u003c/a\u003e Remove legacy url\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/f13b2a2d5d59c683107eb7d9df35c54f1a2c1820\"\u003e\u003ccode\u003ef13b2a2\u003c/code\u003e\u003c/a\u003e Try using proper pypi repo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/84cd1272d498346449c972b046621b3c54d60c08\"\u003e\u003ccode\u003e84cd127\u003c/code\u003e\u003c/a\u003e Increment version to 3.1.0a1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/208562b078770dc373eb9a44554b44d8f1402773\"\u003e\u003ccode\u003e208562b\u003c/code\u003e\u003c/a\u003e Modernize package setup (\u003ca href=\"https://redirect.github.com/beetbox/audioread/issues/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/6da161102578169ce964e05b83cd5c2e8bb8e6c7\"\u003e\u003ccode\u003e6da1611\u003c/code\u003e\u003c/a\u003e Add release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ee7afcf55ae0d760a04db269e2dce6e0adb9cfd4\"\u003e\u003ccode\u003eee7afcf\u003c/code\u003e\u003c/a\u003e Modernize package setup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beetbox/audioread/compare/v3.0.1...v3.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numba` from 0.60.0 to 0.61.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numba/numba/releases\"\u003enumba's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eNumba 0.61.2\u003c/h2\u003e\n\u003cp\u003eMinor Numba release adding NumPy 2.2 support. View detailed release notes and changelog \u003ca href=\"https://numba.readthedocs.io/en/stable/release/0.61.2-notes.html\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eNumba 0.61.0\u003c/h2\u003e\n\u003cp\u003eMajor Numba release adding Python 3.13 and NumPy 2.1 support. View detailed release notes and changelog \u003ca href=\"https://numba.readthedocs.io/en/stable/release/0.61.0-notes.html\"\u003ehere\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/numba/numba/commit/1e70d8ceba56a135e046e32e1e7ad2fcd22fd8ab\"\u003e\u003ccode\u003e1e70d8c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numba/numba/issues/10032\"\u003e#10032\u003c/a\u003e from kc611/release0.61\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/746eb866a4a976ee0e9ba7cf5d9853ff74d2b908\"\u003e\u003ccode\u003e746eb86\u003c/code\u003e\u003c/a\u003e Changed release target to 0.61.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/12cb3e8fafc5b0bc331cb4c1ea703e305e4302ff\"\u003e\u003ccode\u003e12cb3e8\u003c/code\u003e\u003c/a\u003e Updated dates in version support table and release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/6aa65a8dacdac72fb19d47e6606abdb2a5ed5c27\"\u003e\u003ccode\u003e6aa65a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numba/numba/issues/10028\"\u003e#10028\u003c/a\u003e from swap357/update_release_notes_0.61.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/48ab6b115c424d3e0d65f8431e9f210c54deaf47\"\u003e\u003ccode\u003e48ab6b1\u003c/code\u003e\u003c/a\u003e update release notes to exclude 0.61.0 PRs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/d788b465371b76597ffa67d16792be0a5e21bf23\"\u003e\u003ccode\u003ed788b46\u003c/code\u003e\u003c/a\u003e update release-notes with PRs and authors list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/f2210fa2801807a9f88ed4d725df186014e18af5\"\u003e\u003ccode\u003ef2210fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numba/numba/issues/9999\"\u003e#9999\u003c/a\u003e from kc611/release0.61\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/d91b9366a7d99dc40f79ce88072c390100e1c416\"\u003e\u003ccode\u003ed91b936\u003c/code\u003e\u003c/a\u003e Added formatting changes in release message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/a22acbd59146f0960c9b0bd28a636fe1f18d862f\"\u003e\u003ccode\u003ea22acbd\u003c/code\u003e\u003c/a\u003e Updated release notes message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/bf0eadcf69496a89d6252257020c6ecdb4aa00ff\"\u003e\u003ccode\u003ebf0eadc\u003c/code\u003e\u003c/a\u003e Update docs/source/release/0.61.1-notes.rst\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numba/numba/compare/0.60.0...0.61.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.3.6 to 4.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: improve homebrew path detection by \u003ca href=\"https://github.com/daeho-ro\"\u003e\u003ccode\u003e@​daeho-ro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/370\"\u003etox-dev/platformdirs#370\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/daeho-ro\"\u003e\u003ccode\u003e@​daeho-ro\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/370\"\u003etox-dev/platformdirs#370\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/platformdirs/compare/4.3.8...4.4.0\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing examples and fix order of examples in README by \u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\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/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\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/platformdirs/compare/4.3.7...4.3.8\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.7\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChunk dependabot updates into a single PR by \u003ca href=\"https://github.com/ofek\"\u003e\u003ccode\u003e@​ofek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/311\"\u003etox-dev/platformdirs#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/330\"\u003etox-dev/platformdirs#330\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/platformdirs/compare/4.3.6...4.3.7\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\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/platformdirs/commit/c945a28a2cd2ae34154540d144e7671ed80b1c10\"\u003e\u003ccode\u003ec945a28\u003c/code\u003e\u003c/a\u003e feat: improve homebrew path detection (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/9f616e954ee35621a75843fa40180cbd6fea2670\"\u003e\u003ccode\u003e9f616e9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/5720f26595056e11516d1167185ffde135e0aa55\"\u003e\u003ccode\u003e5720f26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/848924dfbec662829225a4a1108e1a818539304a\"\u003e\u003ccode\u003e848924d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/df2e678930d48ac0cb0b019da78a069dfbeae579\"\u003e\u003ccode\u003edf2e678\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/009a3f81879f356a7af0923c2ba443756b552e1c\"\u003e\u003ccode\u003e009a3f8\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/3d194ee7ef7ce2a021a2b5fbf77bbddd171ca9a1\"\u003e\u003ccode\u003e3d194ee\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/6046533d719a8871f5f8fc4fc99c01a14b282853\"\u003e\u003ccode\u003e6046533\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/88389cef8fce1da42858a621770ce4dee8f739f9\"\u003e\u003ccode\u003e88389ce\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/82763ff0c244c7ca7b4eaa4b4336be224b385389\"\u003e\u003ccode\u003e82763ff\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `triton` from 3.1.0 to 3.6.0+git9844da95\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `depyf` from 0.18.0 to 0.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/thuml/depyf/releases\"\u003edepyf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.19.0 release with recent improvements\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd device to imports by \u003ca href=\"https://github.com/ProExpertProg\"\u003e\u003ccode\u003e@​ProExpertProg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/82\"\u003ethuml/depyf#82\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing default argument values in \u003ccode\u003epatched_load_by_key_path\u003c/code\u003e by \u003ca href=\"https://github.com/nopperl\"\u003e\u003ccode\u003e@​nopperl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/81\"\u003ethuml/depyf#81\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate test files by \u003ca href=\"https://github.com/youkaichao\"\u003e\u003ccode\u003e@​youkaichao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/83\"\u003ethuml/depyf#83\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy instruction by \u003ca href=\"https://github.com/youkaichao\"\u003e\u003ccode\u003e@​youkaichao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/84\"\u003ethuml/depyf#84\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/ProExpertProg\"\u003e\u003ccode\u003e@​ProExpertProg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/82\"\u003ethuml/depyf#82\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nopperl\"\u003e\u003ccode\u003e@​nopperl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/81\"\u003ethuml/depyf#81\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/thuml/depyf/compare/v0.18.0...v0.19.0\"\u003ehttps://github.com/thuml/depyf/compare/v0.18.0...v0.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/thuml/depyf/commit/b67e16787e8c66324e114b4f2c6024438385b242\"\u003e\u003ccode\u003eb67e167\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/91ea66d5feca12392ba9c45a08094d948514343d\"\u003e\u003ccode\u003e91ea66d\u003c/code\u003e\u003c/a\u003e update test files (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/88\"\u003e#88\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/4fd2d58b0f6361f4c39aaf26e98b94049b7e6dd6\"\u003e\u003ccode\u003e4fd2d58\u003c/code\u003e\u003c/a\u003e bugfix for list extend with argval != 1 and add DEPYF_REMOVE_TEMP env var (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/87\"\u003e#87\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/2612c16584d7360a511044a313eac02e15f46831\"\u003e\u003ccode\u003e2612c16\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/e379286a302abde2808d249ba186bbe7a8235cc0\"\u003e\u003ccode\u003ee379286\u003c/code\u003e\u003c/a\u003e fix copy instruction (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/5cde94f8fe9446c56ccb19df71dc9f887d4f948a\"\u003e\u003ccode\u003e5cde94f\u003c/code\u003e\u003c/a\u003e update test files (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/83\"\u003e#83\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/461af54b38e07df88c33f5da81970bfc82eaa325\"\u003e\u003ccode\u003e461af54\u003c/code\u003e\u003c/a\u003e Add missing default argument values in \u003ccode\u003epatched_load_by_key_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/81\"\u003e#81\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/3c95e7ac95e133bce7ef8bf6f609dda2e8f331bf\"\u003e\u003ccode\u003e3c95e7a\u003c/code\u003e\u003c/a\u003e Add device to imports (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/thuml/depyf/compare/v0.18.0...v0.20.0\"\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.0.1 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\u003ch2\u003epre-commit v4.2.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFor \u003ccode\u003elanguage: python\u003c/code\u003e first attempt a versioned python executable for the default language version before consulting a potentially unversioned \u003ccode\u003esys.executable\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3430\"\u003e#3430\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle error during conflict detection when a file is named \u0026quot;HEAD\u0026quot;\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3425\"\u003e#3425\u003c/a\u003e PR by \u003ca href=\"https://github.com/tusharsadhwani\"\u003e\u003ccode\u003e@​tusharsadhwani\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.1.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: julia\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3348\"\u003e#3348\u003c/a\u003e PR by \u003ca href=\"https://github.com/fredrikekre\"\u003e\u003ccode\u003e@​fredrikekre\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/2689\"\u003e#2689\u003c/a\u003e issue \u003ca href=\"https://github.com/jmuchovej\"\u003e\u003ccode\u003e@​jmuchovej\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable automatic toolchain switching for \u003ccode\u003elanguage: golang\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3304\"\u003e#3304\u003c/a\u003e PR by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3300\"\u003e#3300\u003c/a\u003e issue by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3149\"\u003e#3149\u003c/a\u003e issue by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: r\u003c/code\u003e installation when initiated by RStudio.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3389\"\u003e#3389\u003c/a\u003e PR by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3385\"\u003e#3385\u003c/a\u003e issue by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\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\u003ch1\u003e4.2.0 - 2025-03-18\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFor \u003ccode\u003elanguage: python\u003c/code\u003e first attempt a versioned python executable for\nthe default language version before consulting a potentially unversioned\n\u003ccode\u003esys.executable\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3430\"\u003e#3430\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle error during conflict detection when a file is named \u0026quot;HEAD\u0026quot;\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3425\"\u003e#3425\u003c/a\u003e PR by \u003ca href=\"https://github.com/tusharsadhwani\"\u003e\u003ccode\u003e@​tusharsadhwani\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.1.0 - 2025-01-20\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: julia\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3348\"\u003e#3348\u003c/a\u003e PR by \u003ca href=\"https://github.com/fredrikekre\"\u003e\u003ccode\u003e@​fredrikekre\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/2689\"\u003e#2689\u003c/a\u003e issue \u003ca href=\"https://github.com/jmuchovej\"\u003e\u003ccode\u003e@​jmuchovej\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable automatic toolchain switching for \u003ccode\u003elanguage: golang\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3304\"\u003e#3304\u003c/a\u003e PR by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3300\"\u003e#3300\u003c/a\u003e issue by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3149\"\u003e#3149\u003c/a\u003e issue by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: r\u003c/code\u003e installation when initiated by RStudio.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3389\"\u003e#3389\u003c/a\u003e PR by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3385\"\u003e#3385\u003c/a\u003e issue by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\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.0.1...v4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-book-theme` from 1.0.1 to 1.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/releases\"\u003esphinx-book-theme's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.4 - 2025-02-20\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.1.3...d3552e2524f4f8b602e9c161a5e765672d1367d1\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eENH: make the generated documentation more reproducible \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/883\"\u003e#883\u003c/a\u003e (\u003ca href=\"https://github.com/mitya57\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: make the generated gettext files reproducible \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/882\"\u003e#882\u003c/a\u003e (\u003ca href=\"https://github.com/mitya57\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: bump version for release :rocket: \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/843\"\u003e#843\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: edited russian translate \u0026quot;By\u0026quot; \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/806\"\u003e#806\u003c/a\u003e (\u003ca href=\"https://github.com/askras\"\u003e\u003ccode\u003e@​askras\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: use raw strings for math equations \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/881\"\u003e#881\u003c/a\u003e (\u003ca href=\"https://github.com/mitya57\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFIX: exclude command prompts when using copy button \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/867\"\u003e#867\u003c/a\u003e (\u003ca href=\"https://github.com/stevepiercy\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMAINT: pin PST theme version for now \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/898\"\u003e#898\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: adding explicit sphinx config into RTD config \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/897\"\u003e#897\u003c/a\u003e (\u003ca href=\"https://github.com/bsipocz\"\u003e\u003ccode\u003e@​bsipocz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: update dependabot config \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/875\"\u003e#875\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: pin pydata sphinx theme and update regression tests \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/862\"\u003e#862\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: upgrade sass \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/861\"\u003e#861\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: really drop python\u0026lt;=3.8 support \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/844\"\u003e#844\u003c/a\u003e (\u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDOCS: fix links in documentation \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/884\"\u003e#884\u003c/a\u003e (\u003ca href=\"https://github.com/choldgraf\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOCS: automatically update copyright year \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/866\"\u003e#866\u003c/a\u003e (\u003ca href=\"https://github.com/stevepiercy\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOCS: correct the option \u003ccode\u003ehtml_source_suffix\u003c/code\u003e to \u003ccode\u003ehtml_sourcelink_suffix\u003c/code\u003e \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/859\"\u003e#859\u003c/a\u003e (\u003ca href=\"https://github.com/Snoopy1866\"\u003e\u003ccode\u003e@​Snoopy1866\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther merged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild(deps-dev): Bump express from 4.18.2 to 4.21.2 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/886\"\u003e#886\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/885\"\u003e#885\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/880\"\u003e#880\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps-dev): Bump dedent from 0.7.0 to 1.5.3 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/878\"\u003e#878\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps-dev): Bump sass from 1.80.4 to 1.81.0 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/877\"\u003e#877\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump the actions group with 3 updates \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/876\"\u003e#876\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps-dev): Bump webpack from 5.92.0 to 5.96.1 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/871\"\u003e#871\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/860\"\u003e#860\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.10.0 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/857\"\u003e#857\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/808\"\u003e#808\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/graphs/contributors?from=2024-06-12\u0026amp;to=2025-02-20\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aagoose77+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aaskras+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​askras\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Absipocz+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​bsipocz\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Acholdgraf+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Adependabot+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Adylanh724+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dylanh724\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Akloczek+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Amitya57+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Anilsleh+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​nilsleh\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Apre-commit-ci+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3ASnoopy1866+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Snoopy1866\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Astevepiercy+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Awelcome+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​welcome\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/blob/master/CHANGELOG.md\"\u003esphinx-book-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev1.1.2 -- 2024-02-13\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.1.1...3da24da74f6042599fe6c9e2d612f5cbdef42280\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eENH: bump version \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/818\"\u003e#818\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: correct event-handler signature \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/817\"\u003e#817\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/graphs/contributors?from=2024-02-13\u0026amp;to=2024-02-13\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aagoose77+updated%3A2024-02-13..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1 -- 2024-02-13\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.1.0...9335ab99b0bc77b826cb2c5afcef3432f14e8780\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eENH: bump version for 1.1.1 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/815\"\u003e#815\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: use \u003ccode\u003econfig-inited\u003c/code\u003e event to register config \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/814\"\u003e#814\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther merged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild(deps): Bump actions/setup-python from 4 to 5 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/803\"\u003e#803\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/801\"\u003e#801\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/graphs/contributors?from=2023-12-19\u0026amp;to=2024-02-13\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aagoose77+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Acholdgraf+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Adependabot+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aghisvail+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ghisvail\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Apre-commit-ci+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Awelcome+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​welcome\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0 -- 2023-12-19\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.0.1...v1.1.0\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\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/executablebooks/sphinx-book-theme/commit/23f6936ae956428463f2ec97eebc2fe68bdd344b\"\u003e\u003ccode\u003e23f6936\u003c/code\u003e\u003c/a\u003e chore: bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/d3552e2524f4f8b602e9c161a5e765672d1367d1\"\u003e\u003ccode\u003ed3552e2\u003c/code\u003e\u003c/a\u003e MAINT: pin PST theme version for now (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/898\"\u003e#898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/ee815b18eeb50b5becb356cce93251030d3565bd\"\u003e\u003ccode\u003eee815b1\u003c/code\u003e\u003c/a\u003e CI: adding explicit sphinx config into RTD config (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/897\"\u003e#897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/8822eeff673f14e627925a51070d5eeaf3360dbe\"\u003e\u003ccode\u003e8822eef\u003c/code\u003e\u003c/a\u003e really drop python\u0026lt;=3.8 support (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/40f7c41fc7a32cb428e1195c86fa156d8a23ce36\"\u003e\u003ccode\u003e40f7c41\u003c/code\u003e\u003c/a\u003e Build(deps): Bump the actions group with 3 updates (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/876\"\u003e#876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/1cd3ca6f39dd51702d581b2db1b705865104e887\"\u003e\u003ccode\u003e1cd3ca6\u003c/code\u003e\u003c/a\u003e Build(deps-dev): Bump express from 4.18.2 to 4.21.2 (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/886\"\u003e#886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/c9a7d49bc5d996b1f4761e748bf4f52e26b0f257\"\u003e\u003ccode\u003ec9a7d49\u003c/code\u003e\u003c/a\u003e Build(deps-dev): Bump sass from 1.80.4 to 1.81.0 (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/877\"\u003e#877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/7d118ba19d1ff842775c7acce90383fefb9da081\"\u003e\u003ccode\u003e7d118ba\u003c/code\u003e\u003c/a\u003e Build(deps-dev): Bump dedent from 0.7.0 to 1.5.3 (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/2732526202b261b3de44c5a4dab425e37f9bd18f\"\u003e\u003ccode\u003e2732526\u003c/code\u003e\u003c/a\u003e Fix links in documentation (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/884\"\u003e#884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/e2eea6fa696efa47a37760e2e7c53f778a143691\"\u003e\u003ccode\u003ee2eea6f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/885\"\u003e#885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.0.1...v1.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-togglebutton` from 0.3.2 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/releases\"\u003esphinx-togglebutton's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.4.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate release workflow and bump version to 0.4.4 by \u003ca href=\"https://github.com/douden\"\u003e\u003ccode\u003e@​douden\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/pull/73\"\u003eexecutablebooks/sphinx-togglebutton#73\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/compare/v0.4.3...v0.4.4\"\u003ehttps://github.com/executablebooks/sphinx-togglebutton/compare/v0.4.3...v0.4.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.4.3\u003c/h2\u003e\n\u003ch2\u003e0.4.3 - 2026-01-14\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded missing information in \u003ccode\u003etests.yml\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/compare/v0.4.2...v0.4.3\"\u003ehttps://github.com/executablebooks/sphinx-togglebutton/compare/v0.4.2...v0.4.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.4.2\u003c/h2\u003e\n\u003ch2\u003e0.4.2 - 2026-01-14\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnhanced \u003ccode\u003esetup.cfg\u003c/code\u003e with complete metadata.\u003c/li\u003e\n\u003cli\u003eSimplified \u003ccode\u003esetup.py\u003c/code\u003e to just call \u003ccode\u003esetup()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/compare/v0.4.1...v0.4.2\"\u003ehttps://github.com/executablebooks/sphinx-togglebutton/compare/v0.4.1...v0.4.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.4.1\u003c/h2\u003e\n\u003ch2\u003e0.4.1 - 2026-01-14\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the release workflow to use a recent Python version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/compare/v0.4.0...v0.4.1\"\u003ehttps://github.com/executablebooks/sphinx-togglebutton/compare/v0.4.0...v0.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.4.0\u003c/h2\u003e\n\u003ch2\u003e0.4.0 - 2026-01-14\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/compare/v0.3.2...v0.4.0\"\u003ehttps://github.com/executablebooks/sphinx-togglebutton/compare/v0.3.2...v0.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for more languages in toggle button text (see README for full list) \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/pull/66\"\u003e#66\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded new functions (syncToggleHint, syncAllToggleHints) to dynamically update toggle button hints based on the current state  \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/pull/66\"\u003e#66\u003c/a\u003e. This allows developers to change the open or closed state of an element and have the button hint text update accordingly automatically.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate togglebutton.js to use an admonition's existing ID if present, instead of always generating a new one \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/pull/66\"\u003e#66\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\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/executablebooks/sphinx-togglebutton/blob/master/CHANGELOG.md\"\u003esphinx-togglebutton's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.4 - 2026-01-14\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade used version in release workflow to the latest available.\u003c/li\u003e\n\u003cli\u003eCorrect build command in \u003ccode\u003etests.yml\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.4.3 - 2026-01-14\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded missing information in \u003ccode\u003etests.yml\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.4.2 - 2026-01-14\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnhanced \u003ccode\u003esetup.cfg\u003c/code\u003e with complete metadata.\u003c/li\u003e\n\u003cli\u003eSimplified \u003ccode\u003esetup.py\u003c/code\u003e to just call \u003ccode\u003esetup()\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.4.1 - 2026-01-14\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the release workflow to use a recent Python version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.4.0 - 2026-01-14\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for more languages in toggle button text (see README for full list) \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/pull/66\"\u003e#66\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded new functions (syncToggleHint, syncAllToggleHints) to dynamically update toggle button hints based on the current state  \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/pull/66\"\u003e#66\u003c/a\u003e. This allows developers to change the open or closed state of an element and have the button hint text update accordingly automatically.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate togglebutton.js to use an admonition's existing ID if present, instead of always generating a new one \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/pull/66\"\u003e#66\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/executablebooks/sphinx-togglebutton/commit/ec20337132f82111541874c155f7f9ffa7d1c9a6\"\u003e\u003ccode\u003eec20337\u003c/code\u003e\u003c/a\u003e Update release workflow and bump version to 0.4.4 (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/73\"\u003e#73\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/commit/946503229a6d0941f340fbc9a039396a76479d1f\"\u003e\u003ccode\u003e9465032\u003c/code\u003e\u003c/a\u003e Prep rls 0.4.3 (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/72\"\u003e#72\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/commit/20245cb90eeb674f342adc348319c32188984a86\"\u003e\u003ccode\u003e20245cb\u003c/code\u003e\u003c/a\u003e Update to v0.4.2 and improve packaging metadata (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/71\"\u003e#71\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/commit/b869f69f5dfc822857ccd0f879ac0fdd7149f72a\"\u003e\u003ccode\u003eb869f69\u003c/code\u003e\u003c/a\u003e Bump version to 0.4.1 and update release workflow (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/70\"\u003e#70\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/commit/aa94ac014a69566ba3f3175fefdc47983bb3140a\"\u003e\u003ccode\u003eaa94ac0\u003c/code\u003e\u003c/a\u003e 🚀 RELEASE: version 0.4.0 (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/69\"\u003e#69\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/commit/5f4c8f70c9dc0cce688cca4c7fae58a5d5389d0f\"\u003e\u003ccode\u003e5f4c8f7\u003c/code\u003e\u003c/a\u003e 👌 IMPROVE: Add i18n support \u0026amp; general improvements (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/66\"\u003e#66\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/commit/f301181eba2b307340614e6c2f46a6e93153a88a\"\u003e\u003ccode\u003ef301181\u003c/code\u003e\u003c/a\u003e Fix dropdown under a code cell in dark mode (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/64\"\u003e#64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/commit/9a8272d50e1e7a7089c2ea82d1f0f2f59180b853\"\u003e\u003ccode\u003e9a8272d\u003c/code\u003e\u003c/a\u003e A11y: set aria-expanded to the toggle button. (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/61\"\u003e#61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/commit/f468ca6c5fd4caf0085a97f84794d733794f3614\"\u003e\u003ccode\u003ef468ca6\u003c/code\u003e\u003c/a\u003e Display hide hint text when admonition is expanded (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/59\"\u003e#59\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/commit/0a356c20e0083a4f6fbffeb504566f242131cb00\"\u003e\u003ccode\u003e0a356c2\u003c/code\u003e\u003c/a\u003e FIX: dropdown toggle height when closed (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/57\"\u003e#57\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/compare/v0.3.2...v0.4.4\"\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/jurgen-paul/TACTICAL-LEGEND-2/pull/35","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jurgen-paul%2FTACTICAL-LEGEND-2/issues/35","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/35/packages"},{"uuid":"3828367906","node_id":"PR_kwDOQDraYs698EM9","number":12,"state":"open","title":"deps: bump the prod-deps group across 1 directory with 37 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-19T07:22:57.000Z","updated_at":"2026-01-26T08:12:43.469Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":37,"packages":[{"name":"django","old_version":"4.2.24","new_version":"6.0.1","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"django-pint","old_version":"0.7.3","new_version":"1.0.3","repository_url":"https://github.com/CarliJoy/django-pint"},{"name":"django-post-office","old_version":"3.10.1","new_version":"3.11.0","repository_url":"https://github.com/ui/django-post_office"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.14","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.3.1","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-treebeard","old_version":"4.7.1","new_version":"4.8.0","repository_url":"https://github.com/django-treebeard/django-treebeard"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"importlib-metadata","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"boto3","old_version":"1.40.27","new_version":"1.42.30","repository_url":"https://github.com/boto/boto3"},{"name":"django-ses","old_version":"4.4.0","new_version":"4.6.0","repository_url":"https://github.com/django-ses/django-ses"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.34.1","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.1","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"40.1.2","repository_url":"https://github.com/joke2k/faker"},{"name":"vcrpy","old_version":"7.0.0","new_version":"8.1.1","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.1.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.150.2","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 37 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `6.0.1` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.2` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [django-pint](https://github.com/CarliJoy/django-pint) | `0.7.3` | `1.0.3` |\n| [django-post-office](https://github.com/ui/django-post_office) | `3.10.1` | `3.11.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.14` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.3.1` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-treebeard](https://github.com/django-treebeard/django-treebeard) | `4.7.1` | `4.8.0` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.0` | `8.7.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.42.30` |\n| [django-ses](https://github.com/django-ses/django-ses) | `4.4.0` | `4.6.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.1` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.34.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.1` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `40.1.2` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `7.0.0` | `8.1.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.1.0` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `3.0.2` | `3.1.0` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.150.2` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/85eb963c5297fb285aecf4a90c97141a1b9c5bee\"\u003e\u003ccode\u003e85eb963\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac4a5509e3a6f2e1099ea659e0c1eb3ed4e9e00f\"\u003e\u003ccode\u003eac4a550\u003c/code\u003e\u003c/a\u003e [6.0.x] Added release date for 6.0.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/dcfc5b04ee8af8284e772a2f3619cd8affb1c07a\"\u003e\u003ccode\u003edcfc5b0\u003c/code\u003e\u003c/a\u003e [6.0.x] Added release date for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/42bab76258162e1df77d080aa69cac5d803ae90a\"\u003e\u003ccode\u003e42bab76\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36843\"\u003e#36843\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django/django/issues/36793\"\u003e#36793\u003c/a\u003e -- Reverted \u0026quot;Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/27489\"\u003e#27489\u003c/a\u003e -- Renamed permissions...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/764af478be8c25c186d27031c50c9a1d0697781b\"\u003e\u003ccode\u003e764af47\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/33647\"\u003e#33647\u003c/a\u003e -- Fixed silent data truncation in bulk_create on Postgres.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b7b5465b1c026dda7de646fca15ca1e97886d021\"\u003e\u003ccode\u003eb7b5465\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36829\"\u003e#36829\u003c/a\u003e -- Reverted value of ClearableFileInput.use_fieldset to ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/90daa655486c7fc69e9dad41c5e96f00339a3b9b\"\u003e\u003ccode\u003e90daa65\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/30515\"\u003e#30515\u003c/a\u003e -- Documented resolve_url() in docs/topics/http/shortcut...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d35daf8600a66c0ff20e36f82969df61a7fc4981\"\u003e\u003ccode\u003ed35daf8\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36796\"\u003e#36796\u003c/a\u003e -- Handled lazy routes correctly in RoutePattern.match().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/16107ab710dc23d5ea0aa17da6bf29fe89b61bb0\"\u003e\u003ccode\u003e16107ab\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36810\"\u003e#36810\u003c/a\u003e -- Avoided infinite recursion in LazyNonce.\u003cstrong\u003erepr\u003c/strong\u003e().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/774543ed4feb37916071e81c0d0b81ba514333fa\"\u003e\u003ccode\u003e774543e\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36305\"\u003e#36305\u003c/a\u003e -- Added documentation indentation guidelines to contrib...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by \u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Revoked tasks now immediately update backend status to REVOKED by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9869\"\u003ecelery/celery#9869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10049\"\u003ecelery/celery#10049\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/celery/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option by \u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10020\"\u003ecelery/celery#10020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup by \u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereliable prefork detection by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10023\"\u003ecelery/celery#10023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter coverage by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10029\"\u003ecelery/celery#10029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example by \u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10032\"\u003ecelery/celery#10032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10033\"\u003ecelery/celery#10033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10037\"\u003ecelery/celery#10037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/celery/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2026-01-04\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string ([#10045](https://github.com/celery/celery/issues/10045))\n- Bugfix: Revoked tasks now immediately update backend status to REVOKED ([#9869](https://github.com/celery/celery/issues/9869))\n- Prepare for release: v5.6.2 ([#10049](https://github.com/celery/celery/issues/10049))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-12-29\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10013\"\u003e#10013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9986\"\u003e#9986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10020\"\u003e#10020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereliable prefork detection (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10023\"\u003e#10023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebetter coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10030\"\u003e#10030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10032\"\u003e#10032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6a43c846f183ef0cbade24f4b9a8f7a6ea113b44\"\u003e\u003ccode\u003e6a43c84\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10049\"\u003e#10049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/333a82f746734151c5cbe848916085455b0a3748\"\u003e\u003ccode\u003e333a82f\u003c/code\u003e\u003c/a\u003e Bugfix: Revoked tasks now immediately update backend status to REVOKED (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9869\"\u003e#9869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/9d6ab110d947270c4edf0b42454266d2954e653d\"\u003e\u003ccode\u003e9d6ab11\u003c/code\u003e\u003c/a\u003e Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeEr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21dbc73f81d2fae058de49e665afaa1cd92da5c0\"\u003e\u003ccode\u003e21dbc73\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/ba20bed7723c684d12ddd62d6a7c0c0d901b3351\"\u003e\u003ccode\u003eba20bed\u003c/code\u003e\u003c/a\u003e Only use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21675299bc2d10c648448ec5221136e07c1eec1a\"\u003e\u003ccode\u003e2167529\u003c/code\u003e\u003c/a\u003e Stop importing pytest_subtests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0527296acb1f1790788301d4395ba6d5ce2a9704\"\u003e\u003ccode\u003e0527296\u003c/code\u003e\u003c/a\u003e Bump google-cloud-firestore from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5f8659bdba4561796d66e938a1e2c71d4489562f\"\u003e\u003ccode\u003e5f8659b\u003c/code\u003e\u003c/a\u003e Clarify 'result_extended' setting usage in tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f19db7008682c782d85e69b5ce736970491752ea\"\u003e\u003ccode\u003ef19db70\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10028\"\u003e#10028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6da72bde60553a1c350eef1e17d834d004ed099d\"\u003e\u003ccode\u003e6da72bd\u003c/code\u003e\u003c/a\u003e better coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on 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/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.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 `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 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/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-pint` from 0.7.3 to 1.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CarliJoy/django-pint/releases\"\u003edjango-pint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect minimal Django version to 5.2 in pyproject.toml\u003c/li\u003e\n\u003cli\u003eFix documentation builds\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFix PyPI signatures\u003c/h2\u003e\n\u003cp\u003eFix broken pipeline for PyPI Sigstore uploads. No source code changes.\u003c/p\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cp\u003eFix a problem with the release pipeline. No source code changes.\u003c/p\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMakefile for easier dev setup by \u003ca href=\"https://github.com/mmarras\"\u003e\u003ccode\u003e@​mmarras\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/100\"\u003eCarliJoy/django-pint#100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etry unit conversion instead of literal dimensionality check \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/99\"\u003e#99\u003c/a\u003e by \u003ca href=\"https://github.com/mmarras\"\u003e\u003ccode\u003e@​mmarras\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/101\"\u003eCarliJoy/django-pint#101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003econvert numeric types to str before calling Decimal by \u003ca href=\"https://github.com/SamuelJennings\"\u003e\u003ccode\u003e@​SamuelJennings\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/108\"\u003eCarliJoy/django-pint#108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate to pyproject and ruff by \u003ca href=\"https://github.com/CarliJoy\"\u003e\u003ccode\u003e@​CarliJoy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/118\"\u003eCarliJoy/django-pint#118\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/mmarras\"\u003e\u003ccode\u003e@​mmarras\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/100\"\u003eCarliJoy/django-pint#100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Adiorz\"\u003e\u003ccode\u003e@​Adiorz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/117\"\u003eCarliJoy/django-pint#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CarliJoy/django-pint/compare/v0.7.3...v1.0.0\"\u003ehttps://github.com/CarliJoy/django-pint/compare/v0.7.3...v1.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CarliJoy/django-pint/blob/main/CHANGELOG.rst\"\u003edjango-pint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion 1.0.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect minimal Django version to 5.2 in pyproject.toml\u003c/li\u003e\n\u003cli\u003eFix documentation builds\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix broken pipeline for PyPI Sigstore uploads. No source code changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix Problem in Publish Pipeline using old upload-artifact (no source code changes)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eStart following \u003ccode\u003eSemVer \u0026lt;https://semver.org/spec/v2.0.0.html\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eConvert numeric types to str before calling Decimal \u003ccode\u003e[#101](https://github.com/CarliJoy/django-pint/issues/101) by @mmarra \u0026lt;https://github.com/CarliJoy/django-pint/pull/101\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eTry unit conversion instead of literal dimensionality check \u003ccode\u003e[#108](https://github.com/CarliJoy/django-pint/issues/108)  by @SamuelJennings \u0026lt;https://github.com/CarliJoy/django-pint/pull/108\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8 and 3.9 and Django 3.2\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12, 3.13 and 3.14 and Django 6.0 \u003ccode\u003e[#116](https://github.com/CarliJoy/django-pint/issues/116) by @Adiorz \u0026lt;https://github.com/CarliJoy/django-pint/pull/117\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eModernize project setup: Use \u003ccode\u003epyproject.toml\u003c/code\u003e only and \u003ccode\u003eruff\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.7.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix conversion of number input to DecimalField (\u003ccode\u003eissue [#106](https://github.com/CarliJoy/django-pint/issues/106) \u0026lt;https://github.com/CarliJoy/django-pint/issues/106\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.7.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix wrong unit display in widget (\u003ccode\u003eissue [#43](https://github.com/CarliJoy/django-pint/issues/43) \u0026lt;https://github.com/CarliJoy/django-pint/issues/43\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.7.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003edrop support for Django (\u0026lt;3.2) and Python Versions (\u0026lt;3.7) as they reached EOL\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003ePositiveIntegerQuantityField\u003c/code\u003e (\u003ccode\u003emerge request [#39](https://github.com/CarliJoy/django-pint/issues/39) from jwygoda\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003efix display of negative and scientific numbers in Widget (\u003ccode\u003emerger request [#41](https://github.com/CarliJoy/django-pint/issues/41) from mikeford3\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.6.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix error with Django 3.2 (\u003ccode\u003eissue [#36](https://github.com/CarliJoy/django-pint/issues/36)\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eremove PrecisionError\u003c/li\u003e\n\u003cli\u003erestructure function a bit, add more type annotations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.6.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eonly a internal technical release as the PyPi token had to be removed\ndue to security breach before and no new token was set before\nreleasing 0.6.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.6.1\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/CarliJoy/django-pint/commit/67fa3b9f7af927bedf810fc8694d72452b17fbed\"\u003e\u003ccode\u003e67fa3b9\u003c/code\u003e\u003c/a\u003e Fix minimal django version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/cdccb655abc7988dda9d1df95ce2087fb78c9c83\"\u003e\u003ccode\u003ecdccb65\u003c/code\u003e\u003c/a\u003e Fix docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/dbc1df925da844c730945c2d580317353aa610d3\"\u003e\u003ccode\u003edbc1df9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/d8912bec27d2f8edcb3debd6aa0fc8883c1e8312\"\u003e\u003ccode\u003ed8912be\u003c/code\u003e\u003c/a\u003e Publish Pipeline: Use newer version of sigstore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/26d263a1d4f0b6d1bf1c04e7824560188d8448d5\"\u003e\u003ccode\u003e26d263a\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/bf21c31770a0cb82714221f59d3f57e93f852ca5\"\u003e\u003ccode\u003ebf21c31\u003c/code\u003e\u003c/a\u003e Fix publish pipeline: Use upload artifacts version 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/3a079f2b24145052178a4a6bcdb53d091c6d3786\"\u003e\u003ccode\u003e3a079f2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/118\"\u003e#118\u003c/a\u003e from CarliJoy/migrate_to_pyproject_and_ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/a302da5319f8f88f64ead260a645942392d36532\"\u003e\u003ccode\u003ea302da5\u003c/code\u003e\u003c/a\u003e prepare new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/68b6277a88d1540777c1aefc787ab7530eb2d5d4\"\u003e\u003ccode\u003e68b6277\u003c/code\u003e\u003c/a\u003e Modernize: use pyproject.toml only and ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/599410c070a277699e750ad27dc5ebb765a832d5\"\u003e\u003ccode\u003e599410c\u003c/code\u003e\u003c/a\u003e feat: upgrade python up to 3.14 and django up to 6.0 (\u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/CarliJoy/django-pint/compare/v0.7.3...v1.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-post-office` from 3.10.1 to 3.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ui/django-post_office/releases\"\u003edjango-post-office's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Python 3.14 and Django 6.0 compatibility. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ui/django-post_office/blob/master/CHANGELOG.md\"\u003edjango-post-office's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/825af68a79bce78acb18c945d1f3acd5935a975b\"\u003e\u003ccode\u003e825af68\u003c/code\u003e\u003c/a\u003e Bump version to 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/99be3b50a904d84f35fecb14f6c64575611a2e8a\"\u003e\u003ccode\u003e99be3b5\u003c/code\u003e\u003c/a\u003e Delete publish.yml (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/a360b7946a0b8a777e0764ab7423749f7686716b\"\u003e\u003ccode\u003ea360b79\u003c/code\u003e\u003c/a\u003e Improve tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/fe7c583512845d31685245b783a502bfc221c0c6\"\u003e\u003ccode\u003efe7c583\u003c/code\u003e\u003c/a\u003e Python314 fix (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0556f5eaaffbbbb29bd3db2ad0c2ef2086595971\"\u003e\u003ccode\u003e0556f5e\u003c/code\u003e\u003c/a\u003e Updated test.yml so tests don't get triggered twice (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/00ddbc165e597af2967fa3fcd3f34a66d0659ae3\"\u003e\u003ccode\u003e00ddbc1\u003c/code\u003e\u003c/a\u003e Webhooks (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/936d1ac816ffd3cf734bd77f0bb7ec17082793f3\"\u003e\u003ccode\u003e936d1ac\u003c/code\u003e\u003c/a\u003e Updated README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/91fbc6c28be60288961521520581d20745b3320c\"\u003e\u003ccode\u003e91fbc6c\u003c/code\u003e\u003c/a\u003e Webhook handlers (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0f68aaf444779682ea3d8806a5f46dea1a753e08\"\u003e\u003ccode\u003e0f68aaf\u003c/code\u003e\u003c/a\u003e Merge branch 'webhooks'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/5b7fdf9989517b1e740cc725ae635833dc376a12\"\u003e\u003ccode\u003e5b7fdf9\u003c/code\u003e\u003c/a\u003e Move tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ui/django-post_office/compare/v3.10.1...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.14\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix missing swagger-ui sourcemaps (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/950\"\u003e#950\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e1.21.12\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Bring the bundled swagger ui up to date (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/944\"\u003e#944\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update the logout button to use a POST request. (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/945\"\u003e#945\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a live demo domain (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/946\"\u003e#946\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Handle annotations that are not available at runtime (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/941\"\u003e#941\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.14\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.13\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix missing swagger-ui sourcemaps (:pr:\u003ccode\u003e950\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.12\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Bring the bundled swagger ui up to date (:pr:\u003ccode\u003e944\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update the logout button to use a POST request. (:pr:\u003ccode\u003e945\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a live demo domain (:pr:\u003ccode\u003e946\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Handle annotations that are not available at runtime (:pr:\u003ccode\u003e941\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/7dceb2783db31631785cd15866c9b44540accf9f\"\u003e\u003ccode\u003e7dceb27\u003c/code\u003e\u003c/a\u003e Add version 1.21.14 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/952\"\u003e#952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/763cdd6473eb963ad36987088e697cfd4f744acc\"\u003e\u003ccode\u003e763cdd6\u003c/code\u003e\u003c/a\u003e Add version 1.21.13 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/951\"\u003e#951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a0559fcacd996b76fbbb5ea0d70aa5c314f06e0c\"\u003e\u003ccode\u003ea0559fc\u003c/code\u003e\u003c/a\u003e Add missing swagger-ui sourcemaps (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/950\"\u003e#950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/2bf74d0789b40aafa638c8fc1d4e25ea8340f530\"\u003e\u003ccode\u003e2bf74d0\u003c/code\u003e\u003c/a\u003e Add version 1.21.12 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/948\"\u003e#948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/b421e89667932159562652d3639368667e5d89d9\"\u003e\u003ccode\u003eb421e89\u003c/code\u003e\u003c/a\u003e swagger ui fix (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/944\"\u003e#944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/40fee2bd8be59bb1b112419fdb79cd9a09745306\"\u003e\u003ccode\u003e40fee2b\u003c/code\u003e\u003c/a\u003e Add live demo domain and environment variables (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/1785b84fe129382595790f390f2b983f62b45271\"\u003e\u003ccode\u003e1785b84\u003c/code\u003e\u003c/a\u003e Update logout button to use POST request. (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0522cc1d9b12df97c2b01cb94ad1587933e8d52c\"\u003e\u003ccode\u003e0522cc1\u003c/code\u003e\u003c/a\u003e Rename github actions files to .yaml (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/3a381234c9a6986bbd44867632ff3cdc78ffe352\"\u003e\u003ccode\u003e3a38123\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/943\"\u003e#943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/b252a0d8f8f87b9ef6417827ae631cf11a6262a1\"\u003e\u003ccode\u003eb252a0d\u003c/code\u003e\u003c/a\u003e Handle annotations not available at runtime (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/941\"\u003e#941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (def...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"},{"uuid":"3807014421","node_id":"PR_kwDOQSc-Vc681ggg","number":12,"state":"closed","title":"Bump the minor-update group across 1 directory with 8 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-20T00:41:58.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-13T04:16:48.000Z","updated_at":"2026-01-20T00:41:59.000Z","time_to_close":591910,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":8,"packages":[{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"numba","old_version":"0.60.0","new_version":"0.61.2","repository_url":"https://github.com/numba/numba"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"triton","old_version":"3.1.0","new_version":"3.6.0+git9844da95"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"depyf","old_version":"0.18.0","new_version":"0.20.0","repository_url":"https://github.com/thuml/depyf"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx-book-theme","old_version":"1.0.1","new_version":"1.1.4","repository_url":"https://github.com/executablebooks/sphinx-book-theme"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 8 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [numba](https://github.com/numba/numba) | `0.60.0` | `0.61.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.4.0` |\n| triton | `3.1.0` | `3.6.0+git9844da95` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [depyf](https://github.com/thuml/depyf) | `0.18.0` | `0.20.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.3.0` |\n| [sphinx-book-theme](https://github.com/executablebooks/sphinx-book-theme) | `1.0.1` | `1.1.4` |\n\n\nUpdates `audioread` from 3.0.1 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/fdd0c2e7f20f3a9b9110c454a140108097236268\"\u003e\u003ccode\u003efdd0c2e\u003c/code\u003e\u003c/a\u003e Increment version to 3.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ec7b3bcb29781132b58affd1053d63da64ed9383\"\u003e\u003ccode\u003eec7b3bc\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13 (\u003ca href=\"https://redirect.github.com/beetbox/audioread/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/bfee9a74d6c389a4d60053cf1d1c6af580fae2e6\"\u003e\u003ccode\u003ebfee9a7\u003c/code\u003e\u003c/a\u003e run tests on python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/b671e436cf5c0c6006f190e3561fc680773237be\"\u003e\u003ccode\u003eb671e43\u003c/code\u003e\u003c/a\u003e Add standard-aifc and standard-sunau as dependencies for python 3.13 and above.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ef77a506b641cdeca11b1e782105e29f8f93eb81\"\u003e\u003ccode\u003eef77a50\u003c/code\u003e\u003c/a\u003e Remove legacy url\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/f13b2a2d5d59c683107eb7d9df35c54f1a2c1820\"\u003e\u003ccode\u003ef13b2a2\u003c/code\u003e\u003c/a\u003e Try using proper pypi repo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/84cd1272d498346449c972b046621b3c54d60c08\"\u003e\u003ccode\u003e84cd127\u003c/code\u003e\u003c/a\u003e Increment version to 3.1.0a1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/208562b078770dc373eb9a44554b44d8f1402773\"\u003e\u003ccode\u003e208562b\u003c/code\u003e\u003c/a\u003e Modernize package setup (\u003ca href=\"https://redirect.github.com/beetbox/audioread/issues/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/6da161102578169ce964e05b83cd5c2e8bb8e6c7\"\u003e\u003ccode\u003e6da1611\u003c/code\u003e\u003c/a\u003e Add release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ee7afcf55ae0d760a04db269e2dce6e0adb9cfd4\"\u003e\u003ccode\u003eee7afcf\u003c/code\u003e\u003c/a\u003e Modernize package setup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beetbox/audioread/compare/v3.0.1...v3.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numba` from 0.60.0 to 0.61.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numba/numba/releases\"\u003enumba's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eNumba 0.61.2\u003c/h2\u003e\n\u003cp\u003eMinor Numba release adding NumPy 2.2 support. View detailed release notes and changelog \u003ca href=\"https://numba.readthedocs.io/en/stable/release/0.61.2-notes.html\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eNumba 0.61.0\u003c/h2\u003e\n\u003cp\u003eMajor Numba release adding Python 3.13 and NumPy 2.1 support. View detailed release notes and changelog \u003ca href=\"https://numba.readthedocs.io/en/stable/release/0.61.0-notes.html\"\u003ehere\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/numba/numba/commit/1e70d8ceba56a135e046e32e1e7ad2fcd22fd8ab\"\u003e\u003ccode\u003e1e70d8c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numba/numba/issues/10032\"\u003e#10032\u003c/a\u003e from kc611/release0.61\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/746eb866a4a976ee0e9ba7cf5d9853ff74d2b908\"\u003e\u003ccode\u003e746eb86\u003c/code\u003e\u003c/a\u003e Changed release target to 0.61.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/12cb3e8fafc5b0bc331cb4c1ea703e305e4302ff\"\u003e\u003ccode\u003e12cb3e8\u003c/code\u003e\u003c/a\u003e Updated dates in version support table and release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/6aa65a8dacdac72fb19d47e6606abdb2a5ed5c27\"\u003e\u003ccode\u003e6aa65a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numba/numba/issues/10028\"\u003e#10028\u003c/a\u003e from swap357/update_release_notes_0.61.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/48ab6b115c424d3e0d65f8431e9f210c54deaf47\"\u003e\u003ccode\u003e48ab6b1\u003c/code\u003e\u003c/a\u003e update release notes to exclude 0.61.0 PRs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/d788b465371b76597ffa67d16792be0a5e21bf23\"\u003e\u003ccode\u003ed788b46\u003c/code\u003e\u003c/a\u003e update release-notes with PRs and authors list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/f2210fa2801807a9f88ed4d725df186014e18af5\"\u003e\u003ccode\u003ef2210fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numba/numba/issues/9999\"\u003e#9999\u003c/a\u003e from kc611/release0.61\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/d91b9366a7d99dc40f79ce88072c390100e1c416\"\u003e\u003ccode\u003ed91b936\u003c/code\u003e\u003c/a\u003e Added formatting changes in release message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/a22acbd59146f0960c9b0bd28a636fe1f18d862f\"\u003e\u003ccode\u003ea22acbd\u003c/code\u003e\u003c/a\u003e Updated release notes message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/bf0eadcf69496a89d6252257020c6ecdb4aa00ff\"\u003e\u003ccode\u003ebf0eadc\u003c/code\u003e\u003c/a\u003e Update docs/source/release/0.61.1-notes.rst\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numba/numba/compare/0.60.0...0.61.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.3.6 to 4.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: improve homebrew path detection by \u003ca href=\"https://github.com/daeho-ro\"\u003e\u003ccode\u003e@​daeho-ro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/370\"\u003etox-dev/platformdirs#370\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/daeho-ro\"\u003e\u003ccode\u003e@​daeho-ro\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/370\"\u003etox-dev/platformdirs#370\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/platformdirs/compare/4.3.8...4.4.0\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing examples and fix order of examples in README by \u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\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/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\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/platformdirs/compare/4.3.7...4.3.8\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.7\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChunk dependabot updates into a single PR by \u003ca href=\"https://github.com/ofek\"\u003e\u003ccode\u003e@​ofek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/311\"\u003etox-dev/platformdirs#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/330\"\u003etox-dev/platformdirs#330\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/platformdirs/compare/4.3.6...4.3.7\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\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/platformdirs/commit/c945a28a2cd2ae34154540d144e7671ed80b1c10\"\u003e\u003ccode\u003ec945a28\u003c/code\u003e\u003c/a\u003e feat: improve homebrew path detection (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/9f616e954ee35621a75843fa40180cbd6fea2670\"\u003e\u003ccode\u003e9f616e9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/5720f26595056e11516d1167185ffde135e0aa55\"\u003e\u003ccode\u003e5720f26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/848924dfbec662829225a4a1108e1a818539304a\"\u003e\u003ccode\u003e848924d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/df2e678930d48ac0cb0b019da78a069dfbeae579\"\u003e\u003ccode\u003edf2e678\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/009a3f81879f356a7af0923c2ba443756b552e1c\"\u003e\u003ccode\u003e009a3f8\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/3d194ee7ef7ce2a021a2b5fbf77bbddd171ca9a1\"\u003e\u003ccode\u003e3d194ee\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/6046533d719a8871f5f8fc4fc99c01a14b282853\"\u003e\u003ccode\u003e6046533\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/88389cef8fce1da42858a621770ce4dee8f739f9\"\u003e\u003ccode\u003e88389ce\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/82763ff0c244c7ca7b4eaa4b4336be224b385389\"\u003e\u003ccode\u003e82763ff\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `triton` from 3.1.0 to 3.6.0+git9844da95\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `depyf` from 0.18.0 to 0.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/thuml/depyf/releases\"\u003edepyf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.19.0 release with recent improvements\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd device to imports by \u003ca href=\"https://github.com/ProExpertProg\"\u003e\u003ccode\u003e@​ProExpertProg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/82\"\u003ethuml/depyf#82\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing default argument values in \u003ccode\u003epatched_load_by_key_path\u003c/code\u003e by \u003ca href=\"https://github.com/nopperl\"\u003e\u003ccode\u003e@​nopperl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/81\"\u003ethuml/depyf#81\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate test files by \u003ca href=\"https://github.com/youkaichao\"\u003e\u003ccode\u003e@​youkaichao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/83\"\u003ethuml/depyf#83\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy instruction by \u003ca href=\"https://github.com/youkaichao\"\u003e\u003ccode\u003e@​youkaichao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/84\"\u003ethuml/depyf#84\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/ProExpertProg\"\u003e\u003ccode\u003e@​ProExpertProg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/82\"\u003ethuml/depyf#82\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nopperl\"\u003e\u003ccode\u003e@​nopperl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/81\"\u003ethuml/depyf#81\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/thuml/depyf/compare/v0.18.0...v0.19.0\"\u003ehttps://github.com/thuml/depyf/compare/v0.18.0...v0.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/thuml/depyf/commit/b67e16787e8c66324e114b4f2c6024438385b242\"\u003e\u003ccode\u003eb67e167\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/91ea66d5feca12392ba9c45a08094d948514343d\"\u003e\u003ccode\u003e91ea66d\u003c/code\u003e\u003c/a\u003e update test files (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/88\"\u003e#88\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/4fd2d58b0f6361f4c39aaf26e98b94049b7e6dd6\"\u003e\u003ccode\u003e4fd2d58\u003c/code\u003e\u003c/a\u003e bugfix for list extend with argval != 1 and add DEPYF_REMOVE_TEMP env var (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/87\"\u003e#87\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/2612c16584d7360a511044a313eac02e15f46831\"\u003e\u003ccode\u003e2612c16\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/e379286a302abde2808d249ba186bbe7a8235cc0\"\u003e\u003ccode\u003ee379286\u003c/code\u003e\u003c/a\u003e fix copy instruction (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/5cde94f8fe9446c56ccb19df71dc9f887d4f948a\"\u003e\u003ccode\u003e5cde94f\u003c/code\u003e\u003c/a\u003e update test files (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/83\"\u003e#83\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/461af54b38e07df88c33f5da81970bfc82eaa325\"\u003e\u003ccode\u003e461af54\u003c/code\u003e\u003c/a\u003e Add missing default argument values in \u003ccode\u003epatched_load_by_key_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/81\"\u003e#81\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/3c95e7ac95e133bce7ef8bf6f609dda2e8f331bf\"\u003e\u003ccode\u003e3c95e7a\u003c/code\u003e\u003c/a\u003e Add device to imports (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/thuml/depyf/compare/v0.18.0...v0.20.0\"\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.0.1 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\u003ch2\u003epre-commit v4.2.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFor \u003ccode\u003elanguage: python\u003c/code\u003e first attempt a versioned python executable for the default language version before consulting a potentially unversioned \u003ccode\u003esys.executable\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3430\"\u003e#3430\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle error during conflict detection when a file is named \u0026quot;HEAD\u0026quot;\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3425\"\u003e#3425\u003c/a\u003e PR by \u003ca href=\"https://github.com/tusharsadhwani\"\u003e\u003ccode\u003e@​tusharsadhwani\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.1.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: julia\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3348\"\u003e#3348\u003c/a\u003e PR by \u003ca href=\"https://github.com/fredrikekre\"\u003e\u003ccode\u003e@​fredrikekre\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/2689\"\u003e#2689\u003c/a\u003e issue \u003ca href=\"https://github.com/jmuchovej\"\u003e\u003ccode\u003e@​jmuchovej\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable automatic toolchain switching for \u003ccode\u003elanguage: golang\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3304\"\u003e#3304\u003c/a\u003e PR by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3300\"\u003e#3300\u003c/a\u003e issue by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3149\"\u003e#3149\u003c/a\u003e issue by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: r\u003c/code\u003e installation when initiated by RStudio.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3389\"\u003e#3389\u003c/a\u003e PR by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3385\"\u003e#3385\u003c/a\u003e issue by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\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\u003ch1\u003e4.2.0 - 2025-03-18\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFor \u003ccode\u003elanguage: python\u003c/code\u003e first attempt a versioned python executable for\nthe default language version before consulting a potentially unversioned\n\u003ccode\u003esys.executable\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3430\"\u003e#3430\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle error during conflict detection when a file is named \u0026quot;HEAD\u0026quot;\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3425\"\u003e#3425\u003c/a\u003e PR by \u003ca href=\"https://github.com/tusharsadhwani\"\u003e\u003ccode\u003e@​tusharsadhwani\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.1.0 - 2025-01-20\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: julia\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3348\"\u003e#3348\u003c/a\u003e PR by \u003ca href=\"https://github.com/fredrikekre\"\u003e\u003ccode\u003e@​fredrikekre\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/2689\"\u003e#2689\u003c/a\u003e issue \u003ca href=\"https://github.com/jmuchovej\"\u003e\u003ccode\u003e@​jmuchovej\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable automatic toolchain switching for \u003ccode\u003elanguage: golang\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3304\"\u003e#3304\u003c/a\u003e PR by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3300\"\u003e#3300\u003c/a\u003e issue by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3149\"\u003e#3149\u003c/a\u003e issue by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: r\u003c/code\u003e installation when initiated by RStudio.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3389\"\u003e#3389\u003c/a\u003e PR by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3385\"\u003e#3385\u003c/a\u003e issue by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\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.0.1...v4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-book-theme` from 1.0.1 to 1.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/releases\"\u003esphinx-book-theme's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.4 - 2025-02-20\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.1.3...d3552e2524f4f8b602e9c161a5e765672d1367d1\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eENH: make the generated documentation more reproducible \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/883\"\u003e#883\u003c/a\u003e (\u003ca href=\"https://github.com/mitya57\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: make the generated gettext files reproducible \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/882\"\u003e#882\u003c/a\u003e (\u003ca href=\"https://github.com/mitya57\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: bump version for release :rocket: \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/843\"\u003e#843\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: edited russian translate \u0026quot;By\u0026quot; \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/806\"\u003e#806\u003c/a\u003e (\u003ca href=\"https://github.com/askras\"\u003e\u003ccode\u003e@​askras\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: use raw strings for math equations \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/881\"\u003e#881\u003c/a\u003e (\u003ca href=\"https://github.com/mitya57\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFIX: exclude command prompts when using copy button \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/867\"\u003e#867\u003c/a\u003e (\u003ca href=\"https://github.com/stevepiercy\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMAINT: pin PST theme version for now \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/898\"\u003e#898\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: adding explicit sphinx config into RTD config \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/897\"\u003e#897\u003c/a\u003e (\u003ca href=\"https://github.com/bsipocz\"\u003e\u003ccode\u003e@​bsipocz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: update dependabot config \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/875\"\u003e#875\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: pin pydata sphinx theme and update regression tests \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/862\"\u003e#862\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: upgrade sass \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/861\"\u003e#861\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: really drop python\u0026lt;=3.8 support \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/844\"\u003e#844\u003c/a\u003e (\u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDOCS: fix links in documentation \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/884\"\u003e#884\u003c/a\u003e (\u003ca href=\"https://github.com/choldgraf\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOCS: automatically update copyright year \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/866\"\u003e#866\u003c/a\u003e (\u003ca href=\"https://github.com/stevepiercy\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOCS: correct the option \u003ccode\u003ehtml_source_suffix\u003c/code\u003e to \u003ccode\u003ehtml_sourcelink_suffix\u003c/code\u003e \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/859\"\u003e#859\u003c/a\u003e (\u003ca href=\"https://github.com/Snoopy1866\"\u003e\u003ccode\u003e@​Snoopy1866\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther merged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild(deps-dev): Bump express from 4.18.2 to 4.21.2 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/886\"\u003e#886\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/885\"\u003e#885\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/880\"\u003e#880\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps-dev): Bump dedent from 0.7.0 to 1.5.3 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/878\"\u003e#878\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps-dev): Bump sass from 1.80.4 to 1.81.0 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/877\"\u003e#877\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump the actions group with 3 updates \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/876\"\u003e#876\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps-dev): Bump webpack from 5.92.0 to 5.96.1 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/871\"\u003e#871\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/860\"\u003e#860\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.10.0 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/857\"\u003e#857\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/808\"\u003e#808\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/graphs/contributors?from=2024-06-12\u0026amp;to=2025-02-20\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aagoose77+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aaskras+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​askras\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Absipocz+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​bsipocz\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Acholdgraf+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Adependabot+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Adylanh724+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dylanh724\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Akloczek+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Amitya57+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Anilsleh+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​nilsleh\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Apre-commit-ci+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3ASnoopy1866+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Snoopy1866\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Astevepiercy+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Awelcome+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​welcome\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/blob/master/CHANGELOG.md\"\u003esphinx-book-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev1.1.2 -- 2024-02-13\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.1.1...3da24da74f6042599fe6c9e2d612f5cbdef42280\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eENH: bump version \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/818\"\u003e#818\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: correct event-handler signature \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/817\"\u003e#817\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/graphs/contributors?from=2024-02-13\u0026amp;to=2024-02-13\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aagoose77+updated%3A2024-02-13..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1 -- 2024-02-13\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.1.0...9335ab99b0bc77b826cb2c5afcef3432f14e8780\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eENH: bump version for 1.1.1 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/815\"\u003e#815\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: use \u003ccode\u003econfig-inited\u003c/code\u003e event to register config \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/814\"\u003e#814\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther merged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild(deps): Bump actions/setup-python from 4 to 5 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/803\"\u003e#803\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/801\"\u003e#801\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/graphs/contributors?from=2023-12-19\u0026amp;to=2024-02-13\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aagoose77+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Acholdgraf+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Adependabot+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aghisvail+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ghisvail\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Apre-commit-ci+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Awelcome+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​welcome\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0 -- 2023-12-19\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.0.1...v1.1.0\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\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/executablebooks/sphinx-book-theme/commit/23f6936ae956428463f2ec97eebc2fe68bdd344b\"\u003e\u003ccode\u003e23f6936\u003c/code\u003e\u003c/a\u003e chore: bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/d3552e2524f4f8b602e9c161a5e765672d1367d1\"\u003e\u003ccode\u003ed3552e2\u003c/code\u003e\u003c/a\u003e MAINT: pin PST theme version for now (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/898\"\u003e#898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/ee815b18eeb50b5becb356cce93251030d3565bd\"\u003e\u003ccode\u003eee815b1\u003c/code\u003e\u003c/a\u003e CI: adding explicit sphinx config into RTD config (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/897\"\u003e#897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/8822eeff673f14e627925a51070d5eeaf3360dbe\"\u003e\u003ccode\u003e8822eef\u003c/code\u003e\u003c/a\u003e really drop python\u0026lt;=3.8 support (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/40f7c41fc7a32cb428e1195c86fa156d8a23ce36\"\u003e\u003ccode\u003e40f7c41\u003c/code\u003e\u003c/a\u003e Build(deps): Bump the actions group with 3 updates (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/876\"\u003e#876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/1cd3ca6f39dd51702d581b2db1b705865104e887\"\u003e\u003ccode\u003e1cd3ca6\u003c/code\u003e\u003c/a\u003e Build(deps-dev): Bump express from 4.18.2 to 4.21.2 (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/886\"\u003e#886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/c9a7d49bc5d996b1f4761e748bf4f52e26b0f257\"\u003e\u003ccode\u003ec9a7d49\u003c/code\u003e\u003c/a\u003e Build(deps-dev): Bump sass from 1.80.4 to 1.81.0 (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/877\"\u003e#877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/7d118ba19d1ff842775c7acce90383fefb9da081\"\u003e\u003ccode\u003e7d118ba\u003c/code\u003e\u003c/a\u003e Build(deps-dev): Bump dedent from 0.7.0 to 1.5.3 (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/2732526202b261b3de44c5a4dab425e37f9bd18f\"\u003e\u003ccode\u003e2732526\u003c/code\u003e\u003c/a\u003e Fix links in documentation (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/884\"\u003e#884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/e2eea6fa696efa47a37760e2e7c53f778a143691\"\u003e\u003ccode\u003ee2eea6f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/885\"\u003e#885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.0.1...v1.1.4\"\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/NazmulTakbir/FlexiCache-vLLM-extension/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/NazmulTakbir%2FFlexiCache-vLLM-extension/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"},{"uuid":"3780341937","node_id":"PR_kwDOQDraYs67eXHd","number":11,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 35 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-01-19T07:20:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-05T06:31:59.000Z","updated_at":"2026-01-19T07:20:58.000Z","time_to_close":1212537,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":35,"packages":[{"name":"django","old_version":"4.2.24","new_version":"6.0","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"django-post-office","old_version":"3.10.1","new_version":"3.11.0","repository_url":"https://github.com/ui/django-post_office"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-treebeard","old_version":"4.7.1","new_version":"4.8.0","repository_url":"https://github.com/django-treebeard/django-treebeard"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"importlib-metadata","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"boto3","old_version":"1.40.27","new_version":"1.42.21","repository_url":"https://github.com/boto/boto3"},{"name":"django-ses","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/django-ses/django-ses"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.33.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.1","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"40.1.0","repository_url":"https://github.com/joke2k/faker"},{"name":"vcrpy","old_version":"7.0.0","new_version":"8.1.1","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.1.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.148.13","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 35 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `6.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.2` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [django-post-office](https://github.com/ui/django-post_office) | `3.10.1` | `3.11.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-treebeard](https://github.com/django-treebeard/django-treebeard) | `4.7.1` | `4.8.0` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.0` | `8.7.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.42.21` |\n| [django-ses](https://github.com/django-ses/django-ses) | `4.4.0` | `4.5.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.1` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.33.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.1` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `40.1.0` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `7.0.0` | `8.1.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.1.0` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.148.13` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 6.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/36b5f39d9372147f0e758f590e35ee2b2bc317dd\"\u003e\u003ccode\u003e36b5f39\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f46d1f43345da90037aab1c238d81058b61515b\"\u003e\u003ccode\u003e4f46d1f\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated man page for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a9f5ca5c58df7b662ad23ba9a39619c41a7e39ff\"\u003e\u003ccode\u003ea9f5ca5\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35859\"\u003e#35859\u003c/a\u003e -- Clarified Tasks ref and topics docs regarding availabl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/45f9e0e969257c0938fec4b51b9b0264aa49bd25\"\u003e\u003ccode\u003e45f9e0e\u003c/code\u003e\u003c/a\u003e [6.0.x] Finalized release notes for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac44a55c80a918c30a4f5f03becd4cf01500bbb6\"\u003e\u003ccode\u003eac44a55\u003c/code\u003e\u003c/a\u003e [6.0.x] Made cosmetic edits to docs/releases/6.0.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/00575b79312c719a6b37035067095e2d679bb5d7\"\u003e\u003ccode\u003e00575b7\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8414487569431f14e3da0c90185f03267a118160\"\u003e\u003ccode\u003e8414487\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35444\"\u003e#35444\u003c/a\u003e -- Fixed typo in PostgreSQL StringAgg deprecation warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1f8f36ee794aba06246f3a3e48a3fefadff019ea\"\u003e\u003ccode\u003e1f8f36e\u003c/code\u003e\u003c/a\u003e [6.0.x] Added CVE-2025-13372 and CVE-2025-64460 to security archive.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/224fc79c02366158be05beaaa18ad557b0c9096a\"\u003e\u003ccode\u003e224fc79\u003c/code\u003e\u003c/a\u003e [6.0.x] Added stub release notes for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1dbd07a608e495a0c229edaaf84d58d8976313b5\"\u003e\u003ccode\u003e1dbd07a\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2025-64460 -- Corrected quadratic inner text accumulation i...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by \u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Revoked tasks now immediately update backend status to REVOKED by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9869\"\u003ecelery/celery#9869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10049\"\u003ecelery/celery#10049\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/celery/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option by \u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10020\"\u003ecelery/celery#10020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup by \u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereliable prefork detection by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10023\"\u003ecelery/celery#10023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter coverage by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10029\"\u003ecelery/celery#10029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example by \u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10032\"\u003ecelery/celery#10032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10033\"\u003ecelery/celery#10033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10037\"\u003ecelery/celery#10037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/celery/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2026-01-04\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string ([#10045](https://github.com/celery/celery/issues/10045))\n- Bugfix: Revoked tasks now immediately update backend status to REVOKED ([#9869](https://github.com/celery/celery/issues/9869))\n- Prepare for release: v5.6.2 ([#10049](https://github.com/celery/celery/issues/10049))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-12-29\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10013\"\u003e#10013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9986\"\u003e#9986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10020\"\u003e#10020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereliable prefork detection (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10023\"\u003e#10023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebetter coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10030\"\u003e#10030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10032\"\u003e#10032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6a43c846f183ef0cbade24f4b9a8f7a6ea113b44\"\u003e\u003ccode\u003e6a43c84\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10049\"\u003e#10049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/333a82f746734151c5cbe848916085455b0a3748\"\u003e\u003ccode\u003e333a82f\u003c/code\u003e\u003c/a\u003e Bugfix: Revoked tasks now immediately update backend status to REVOKED (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9869\"\u003e#9869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/9d6ab110d947270c4edf0b42454266d2954e653d\"\u003e\u003ccode\u003e9d6ab11\u003c/code\u003e\u003c/a\u003e Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeEr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21dbc73f81d2fae058de49e665afaa1cd92da5c0\"\u003e\u003ccode\u003e21dbc73\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/ba20bed7723c684d12ddd62d6a7c0c0d901b3351\"\u003e\u003ccode\u003eba20bed\u003c/code\u003e\u003c/a\u003e Only use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21675299bc2d10c648448ec5221136e07c1eec1a\"\u003e\u003ccode\u003e2167529\u003c/code\u003e\u003c/a\u003e Stop importing pytest_subtests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0527296acb1f1790788301d4395ba6d5ce2a9704\"\u003e\u003ccode\u003e0527296\u003c/code\u003e\u003c/a\u003e Bump google-cloud-firestore from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5f8659bdba4561796d66e938a1e2c71d4489562f\"\u003e\u003ccode\u003e5f8659b\u003c/code\u003e\u003c/a\u003e Clarify 'result_extended' setting usage in tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f19db7008682c782d85e69b5ce736970491752ea\"\u003e\u003ccode\u003ef19db70\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10028\"\u003e#10028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6da72bde60553a1c350eef1e17d834d004ed099d\"\u003e\u003ccode\u003e6da72bd\u003c/code\u003e\u003c/a\u003e better coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on 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/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.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 `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 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/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-post-office` from 3.10.1 to 3.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ui/django-post_office/releases\"\u003edjango-post-office's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Python 3.14 and Django 6.0 compatibility. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ui/django-post_office/blob/master/CHANGELOG.md\"\u003edjango-post-office's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/825af68a79bce78acb18c945d1f3acd5935a975b\"\u003e\u003ccode\u003e825af68\u003c/code\u003e\u003c/a\u003e Bump version to 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/99be3b50a904d84f35fecb14f6c64575611a2e8a\"\u003e\u003ccode\u003e99be3b5\u003c/code\u003e\u003c/a\u003e Delete publish.yml (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/a360b7946a0b8a777e0764ab7423749f7686716b\"\u003e\u003ccode\u003ea360b79\u003c/code\u003e\u003c/a\u003e Improve tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/fe7c583512845d31685245b783a502bfc221c0c6\"\u003e\u003ccode\u003efe7c583\u003c/code\u003e\u003c/a\u003e Python314 fix (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0556f5eaaffbbbb29bd3db2ad0c2ef2086595971\"\u003e\u003ccode\u003e0556f5e\u003c/code\u003e\u003c/a\u003e Updated test.yml so tests don't get triggered twice (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/00ddbc165e597af2967fa3fcd3f34a66d0659ae3\"\u003e\u003ccode\u003e00ddbc1\u003c/code\u003e\u003c/a\u003e Webhooks (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/936d1ac816ffd3cf734bd77f0bb7ec17082793f3\"\u003e\u003ccode\u003e936d1ac\u003c/code\u003e\u003c/a\u003e Updated README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/91fbc6c28be60288961521520581d20745b3320c\"\u003e\u003ccode\u003e91fbc6c\u003c/code\u003e\u003c/a\u003e Webhook handlers (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0f68aaf444779682ea3d8806a5f46dea1a753e08\"\u003e\u003ccode\u003e0f68aaf\u003c/code\u003e\u003c/a\u003e Merge branch 'webhooks'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/5b7fdf9989517b1e740cc725ae635833dc376a12\"\u003e\u003ccode\u003e5b7fdf9\u003c/code\u003e\u003c/a\u003e Move tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ui/django-post_office/compare/v3.10.1...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove initial Release Drafter config (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c0b74ed58f933bffd160c60a58620f672710ff7c\"\u003ec0b74ed\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/martinblech/xmltodict/commit/d079849136b031c471ec96a168ad7859ed5994ff\"\u003e\u003ccode\u003ed079849\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e\u003ccode\u003e25b61a4\u003c/code\u003e\u003c/a\u003e fix: allow DOCTYPE with disable_entities=True (default)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a2a9ab7e0692a62f64d97ff12553d0d53368c854\"\u003e\u003ccode\u003ea2a9ab7\u003c/code\u003e\u003c/a\u003e ci(publish): allow uploading release assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/656e6af9543e640fda7e96d6bdd6e693756687be\"\u003e\u003ccode\u003e656e6af\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003e\u003ccode\u003ec986d2d\u003c/code\u003e\u003c/a\u003e fix: fail closed when entities disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e\u003ccode\u003e3d4d2d3\u003c/code\u003e\u003c/a\u003e fix: validate XML comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b4a5f2a3f04aff68384486e957632c8438396fd6\"\u003e\u003ccode\u003eb4a5f2a\u003c/code\u003e\u003c/a\u003e refactor: remove jython-specific parsing branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e\u003ccode\u003e6b464fc\u003c/code\u003e\u003c/a\u003e docs: clarify process_comments docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/34daa304d443e49113d195294d99c6f58ce4714c\"\u003e\u003ccode\u003e34daa30\u003c/code\u003e\u003c/a\u003e refactor: remove unused helper functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e\u003ccode\u003e2025b5c\u003c/code\u003e\u003c/a\u003e docs: clarify behavior for empty lists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/11","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/11","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/11/packages"},{"uuid":"3752501390","node_id":"PR_kwDOQDraYs66Ev1g","number":10,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 34 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-01-05T06:30:08.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T06:28:36.000Z","updated_at":"2026-01-05T06:30:10.000Z","time_to_close":1209692,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":34,"packages":[{"name":"django","old_version":"4.2.24","new_version":"6.0","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-treebeard","old_version":"4.7.1","new_version":"4.8.0","repository_url":"https://github.com/django-treebeard/django-treebeard"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"importlib-metadata","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"boto3","old_version":"1.40.27","new_version":"1.42.14","repository_url":"https://github.com/boto/boto3"},{"name":"django-ses","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/django-ses/django-ses"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"39.0.0","repository_url":"https://github.com/joke2k/faker"},{"name":"vcrpy","old_version":"7.0.0","new_version":"8.1.0","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.0.4","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.148.7","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `6.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-treebeard](https://github.com/django-treebeard/django-treebeard) | `4.7.1` | `4.8.0` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.0` | `8.7.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.42.14` |\n| [django-ses](https://github.com/django-ses/django-ses) | `4.4.0` | `4.5.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.0` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `39.0.0` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `7.0.0` | `8.1.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.0.4` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.148.7` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 6.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/36b5f39d9372147f0e758f590e35ee2b2bc317dd\"\u003e\u003ccode\u003e36b5f39\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f46d1f43345da90037aab1c238d81058b61515b\"\u003e\u003ccode\u003e4f46d1f\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated man page for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a9f5ca5c58df7b662ad23ba9a39619c41a7e39ff\"\u003e\u003ccode\u003ea9f5ca5\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35859\"\u003e#35859\u003c/a\u003e -- Clarified Tasks ref and topics docs regarding availabl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/45f9e0e969257c0938fec4b51b9b0264aa49bd25\"\u003e\u003ccode\u003e45f9e0e\u003c/code\u003e\u003c/a\u003e [6.0.x] Finalized release notes for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac44a55c80a918c30a4f5f03becd4cf01500bbb6\"\u003e\u003ccode\u003eac44a55\u003c/code\u003e\u003c/a\u003e [6.0.x] Made cosmetic edits to docs/releases/6.0.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/00575b79312c719a6b37035067095e2d679bb5d7\"\u003e\u003ccode\u003e00575b7\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8414487569431f14e3da0c90185f03267a118160\"\u003e\u003ccode\u003e8414487\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35444\"\u003e#35444\u003c/a\u003e -- Fixed typo in PostgreSQL StringAgg deprecation warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1f8f36ee794aba06246f3a3e48a3fefadff019ea\"\u003e\u003ccode\u003e1f8f36e\u003c/code\u003e\u003c/a\u003e [6.0.x] Added CVE-2025-13372 and CVE-2025-64460 to security archive.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/224fc79c02366158be05beaaa18ad557b0c9096a\"\u003e\u003ccode\u003e224fc79\u003c/code\u003e\u003c/a\u003e [6.0.x] Added stub release notes for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1dbd07a608e495a0c229edaaf84d58d8976313b5\"\u003e\u003ccode\u003e1dbd07a\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2025-64460 -- Corrected quadratic inner text accumulation i...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on 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/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.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 `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 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/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove initial Release Drafter config (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c0b74ed58f933bffd160c60a58620f672710ff7c\"\u003ec0b74ed\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/martinblech/xmltodict/commit/d079849136b031c471ec96a168ad7859ed5994ff\"\u003e\u003ccode\u003ed079849\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e\u003ccode\u003e25b61a4\u003c/code\u003e\u003c/a\u003e fix: allow DOCTYPE with disable_entities=True (default)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a2a9ab7e0692a62f64d97ff12553d0d53368c854\"\u003e\u003ccode\u003ea2a9ab7\u003c/code\u003e\u003c/a\u003e ci(publish): allow uploading release assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/656e6af9543e640fda7e96d6bdd6e693756687be\"\u003e\u003ccode\u003e656e6af\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003e\u003ccode\u003ec986d2d\u003c/code\u003e\u003c/a\u003e fix: fail closed when entities disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e\u003ccode\u003e3d4d2d3\u003c/code\u003e\u003c/a\u003e fix: validate XML comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b4a5f2a3f04aff68384486e957632c8438396fd6\"\u003e\u003ccode\u003eb4a5f2a\u003c/code\u003e\u003c/a\u003e refactor: remove jython-specific parsing branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e\u003ccode\u003e6b464fc\u003c/code\u003e\u003c/a\u003e docs: clarify process_comments docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/34daa304d443e49113d195294d99c6f58ce4714c\"\u003e\u003ccode\u003e34daa30\u003c/code\u003e\u003c/a\u003e refactor: remove unused helper functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e\u003ccode\u003e2025b5c\u003c/code\u003e\u003c/a\u003e docs: clarify behavior for empty lists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezs...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"},{"uuid":"3752379755","node_id":"PR_kwDOAYRY2s66EV9Z","number":5157,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 34 updates","user":"dependabot[bot]","labels":["Maintenance"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-05T05:21:28.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T05:25:15.000Z","updated_at":"2026-01-05T05:21:29.000Z","time_to_close":1209373,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":34,"packages":[{"name":"django","old_version":"4.2.26","new_version":"6.0","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.8","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"simple-salesforce","old_version":"1.12.8","new_version":"1.12.9","repository_url":"https://github.com/simple-salesforce/simple-salesforce"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-treebeard","old_version":"4.7.1","new_version":"4.8.0","repository_url":"https://github.com/django-treebeard/django-treebeard"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"importlib-metadata","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"boto3","old_version":"1.40.30","new_version":"1.42.14","repository_url":"https://github.com/boto/boto3"},{"name":"django-ses","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/django-ses/django-ses"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"39.0.0","repository_url":"https://github.com/joke2k/faker"},{"name":"vcrpy","old_version":"7.0.0","new_version":"8.1.0","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.0.4","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.16","new_version":"6.148.7","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.26` | `6.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.8` | `3.2.9` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [simple-salesforce](https://github.com/simple-salesforce/simple-salesforce) | `1.12.8` | `1.12.9` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-treebeard](https://github.com/django-treebeard/django-treebeard) | `4.7.1` | `4.8.0` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.0` | `8.7.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.30` | `1.42.14` |\n| [django-ses](https://github.com/django-ses/django-ses) | `4.4.0` | `4.5.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.0` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `39.0.0` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `7.0.0` | `8.1.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.0.4` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.16` | `6.148.7` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.26 to 6.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/36b5f39d9372147f0e758f590e35ee2b2bc317dd\"\u003e\u003ccode\u003e36b5f39\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f46d1f43345da90037aab1c238d81058b61515b\"\u003e\u003ccode\u003e4f46d1f\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated man page for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a9f5ca5c58df7b662ad23ba9a39619c41a7e39ff\"\u003e\u003ccode\u003ea9f5ca5\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35859\"\u003e#35859\u003c/a\u003e -- Clarified Tasks ref and topics docs regarding availabl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/45f9e0e969257c0938fec4b51b9b0264aa49bd25\"\u003e\u003ccode\u003e45f9e0e\u003c/code\u003e\u003c/a\u003e [6.0.x] Finalized release notes for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac44a55c80a918c30a4f5f03becd4cf01500bbb6\"\u003e\u003ccode\u003eac44a55\u003c/code\u003e\u003c/a\u003e [6.0.x] Made cosmetic edits to docs/releases/6.0.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/00575b79312c719a6b37035067095e2d679bb5d7\"\u003e\u003ccode\u003e00575b7\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8414487569431f14e3da0c90185f03267a118160\"\u003e\u003ccode\u003e8414487\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35444\"\u003e#35444\u003c/a\u003e -- Fixed typo in PostgreSQL StringAgg deprecation warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1f8f36ee794aba06246f3a3e48a3fefadff019ea\"\u003e\u003ccode\u003e1f8f36e\u003c/code\u003e\u003c/a\u003e [6.0.x] Added CVE-2025-13372 and CVE-2025-64460 to security archive.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/224fc79c02366158be05beaaa18ad557b0c9096a\"\u003e\u003ccode\u003e224fc79\u003c/code\u003e\u003c/a\u003e [6.0.x] Added stub release notes for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1dbd07a608e495a0c229edaaf84d58d8976313b5\"\u003e\u003ccode\u003e1dbd07a\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2025-64460 -- Corrected quadratic inner text accumulation i...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.26...6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on 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/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.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 `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 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/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.8 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\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/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.8...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simple-salesforce` from 1.12.8 to 1.12.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simple-salesforce/simple-salesforce/releases\"\u003esimple-salesforce's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.12.9\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: missing key 'name' in exception message by \u003ca href=\"https://github.com/hofrob\"\u003e\u003ccode\u003e@​hofrob\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/pull/795\"\u003esimple-salesforce/simple-salesforce#795\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/hofrob\"\u003e\u003ccode\u003e@​hofrob\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/pull/795\"\u003esimple-salesforce/simple-salesforce#795\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simple-salesforce/simple-salesforce/compare/v1.12.8...v1.12.9\"\u003ehttps://github.com/simple-salesforce/simple-salesforce/compare/v1.12.8...v1.12.9\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/simple-salesforce/simple-salesforce/blob/master/CHANGES\"\u003esimple-salesforce's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev1.12.9\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/issues/795\"\u003e#795\u003c/a\u003e Fix key 'name' in exception message\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simple-salesforce/simple-salesforce/commit/fc7410a1603a6a2f4df2dc407b9f3f5313cb696e\"\u003e\u003ccode\u003efc7410a\u003c/code\u003e\u003c/a\u003e chore: Bump release version (\u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simple-salesforce/simple-salesforce/commit/e9c256377abe6b7b6455e69ba9bd8b7d76d566de\"\u003e\u003ccode\u003ee9c2563\u003c/code\u003e\u003c/a\u003e fix: missing key 'name' in exception message (\u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/issues/795\"\u003e#795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/simple-salesforce/simple-salesforce/compare/v1.12.8...v1.12.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shapely` from 2.0.7 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\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/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-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/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densi...\n\n_Description has been truncated_","html_url":"https://github.com/SEED-platform/seed/pull/5157","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SEED-platform%2Fseed/issues/5157","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5157/packages"},{"uuid":"3681752089","node_id":"PR_kwDONPMWbc62YwfE","number":69,"state":"closed","title":"Bump the all 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-12-13T08:25:15.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-01T16:15:49.000Z","updated_at":"2025-12-13T08:25:16.000Z","time_to_close":1008566,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all","update_count":11,"packages":[{"name":"hypothesis","old_version":"6.140.2","new_version":"6.148.5","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"poethepoet","old_version":"0.37.0","new_version":"0.38.0","repository_url":"https://github.com/nat-n/poethepoet"},{"name":"pyright","old_version":"1.1.405","new_version":"1.1.407","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"ruff","old_version":"0.13.2","new_version":"0.14.7","repository_url":"https://github.com/astral-sh/ruff"},{"name":"vermin","old_version":"1.6.0","new_version":"1.8.0","repository_url":"https://github.com/netromdk/vermin"},{"name":"beautifulsoup4","old_version":"4.13.5","new_version":"4.14.3"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"lxml","old_version":"6.0.1","new_version":"6.0.2","repository_url":"https://github.com/lxml/lxml"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.10.6","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"more-itertools","old_version":"10.7.0","new_version":"10.8.0","repository_url":"https://github.com/more-itertools/more-itertools"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.140.2` | `6.148.5` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.1` |\n| [poethepoet](https://github.com/nat-n/poethepoet) | `0.37.0` | `0.38.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.405` | `1.1.407` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.2` | `0.14.7` |\n| [vermin](https://github.com/netromdk/vermin) | `1.6.0` | `1.8.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.5` | `4.14.3` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [lxml](https://github.com/lxml/lxml) | `6.0.1` | `6.0.2` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.10.6` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.7.0` | `10.8.0` |\n\n\nUpdates `hypothesis` from 6.140.2 to 6.148.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/releases\"\u003ehypothesis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eHypothesis for Python - version 6.148.5\u003c/h2\u003e\n\u003cp\u003eThis patch improves the error message for \u0026quot;FlakyStrategyDefinition\u0026quot;\nwhen the precondition for a rule is flaky (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4206\"\u003e#4206\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-148-5\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.148.4\u003c/h2\u003e\n\u003cp\u003eThis patch improves the type annotations for \u0026quot;basic_indices()\u0026quot;. The\nreturn type now accurately reflects the \u0026quot;allow_ellipsis\u0026quot; and\n\u0026quot;allow_newaxis\u0026quot; parameters, excluding \u0026quot;EllipsisType\u0026quot; or \u0026quot;None\u0026quot; from\nthe union when those index types are disabled (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4607\"\u003e#4607\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eAdditionally, \u0026quot;assume()\u0026quot; now has overloaded type annotations:\n\u0026quot;assume(True)\u0026quot; returns \u0026quot;Literal[True]\u0026quot;, while \u0026quot;assume(False)\u0026quot; and\n\u0026quot;assume(None)\u0026quot; return \u0026quot;NoReturn\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-148-4\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.148.3\u003c/h2\u003e\n\u003cp\u003eClean up some internal code.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-148-3\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.148.2\u003c/h2\u003e\n\u003cp\u003eDocument \u0026quot;fuzz_one_input()\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-148-2\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.148.1\u003c/h2\u003e\n\u003cp\u003eThis patch updates our vendored list of top-level domains, which is\nused by the provisional \u0026quot;domains()\u0026quot; strategy.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-148-1\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.148.0\u003c/h2\u003e\n\u003cp\u003eCalling \u0026quot;register_profile()\u0026quot; from within a test decorated with\n\u0026quot;\u003ca href=\"https://github.com/settings\"\u003e\u003ccode\u003e@​settings\u003c/code\u003e\u003c/a\u003e\u0026quot; is now deprecated, to avoid confusion about which settings\nare used as the baseline for the new profile.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-148-0\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.147.0\u003c/h2\u003e\n\u003cp\u003eThis release drops support for nose, which ceased development 9 years\nago and does not support Python 3.10 or newer.\u003c/p\u003e\n\u003cp\u003eHypothesis still supports nose2. While we do not test \u0026quot;nose2\u0026quot; in our\nCI, we will fix any bugs that get reported.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-147-0\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/3605694a68576c4b4adb520a3581d97f30cfce92\"\u003e\u003ccode\u003e3605694\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.148.5 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/921f2462d795905d9f8583cc7396545806796ebd\"\u003e\u003ccode\u003e921f246\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4615\"\u003e#4615\u003c/a\u003e from Zac-HD/claude/improve-stateful-error-message-01...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/0e4d4c7fb2733240f1b4ff6b6759aadb53318993\"\u003e\u003ccode\u003e0e4d4c7\u003c/code\u003e\u003c/a\u003e Add _flaky_state handling and test for flaky rule strategy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/41f03290ab1956c129f7a53146410e1a467f6978\"\u003e\u003ccode\u003e41f0329\u003c/code\u003e\u003c/a\u003e Improve FlakyStrategyDefinition error message for stateful tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/d812e5c33ee543e0d68ab4076ac87c85e0e8c5b6\"\u003e\u003ccode\u003ed812e5c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4613\"\u003e#4613\u003c/a\u003e from Zac-HD/claude/fix-stack-depth-warning-019yVLCyc...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/a0bd28f6458f07acecf2774de71ed4f4a35d5618\"\u003e\u003ccode\u003ea0bd28f\u003c/code\u003e\u003c/a\u003e Enable stacklevel test for \u003ca href=\"https://github.com/st\"\u003e\u003ccode\u003e@​st\u003c/code\u003e\u003c/a\u003e.composite on all Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/075e2ac0be876b1bf4c091376ad5fe43965bf6b4\"\u003e\u003ccode\u003e075e2ac\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.148.4 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/e05b372765349fed7cc196f1295b83f13f5c3f09\"\u003e\u003ccode\u003ee05b372\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4611\"\u003e#4611\u003c/a\u003e from Zac-HD/claude/fix-hypothesis-4607-018dHECpz3mwL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/799c0c9808863d2aaf89cb590094a601045d66a4\"\u003e\u003ccode\u003e799c0c9\u003c/code\u003e\u003c/a\u003e Fix type test expectations for basic_indices overloads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/1308babcf986463cb30102fae32fd04fabf5ccf3\"\u003e\u003ccode\u003e1308bab\u003c/code\u003e\u003c/a\u003e Fix import order in numpy.py\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/compare/hypothesis-python-6.140.2...hypothesis-python-6.148.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.2 to 9.0.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\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\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/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.0\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.0 (2025-11-05)\u003c/h1\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/1367\"\u003e#1367\u003c/a\u003e: \u003cstrong\u003eSupport for subtests\u003c/strong\u003e has been added.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003esubtests \u0026lt;subtests\u0026gt;\u003c/code\u003e are an alternative to parametrization, useful in situations where the parametrization values are not all known at collection time.\u003c/p\u003e\n\u003cp\u003eExample:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003edef contains_docstring(p: Path) -\u0026gt; bool:\n    \u0026quot;\u0026quot;\u0026quot;Return True if the given Python file contains a top-level docstring.\u0026quot;\u0026quot;\u0026quot;\n    ...\n\u003cp\u003edef test_py_files_contain_docstring(subtests: pytest.Subtests) -\u0026gt; None:\u003cbr /\u003e\nfor path in Path.cwd().glob(\u0026quot;*.py\u0026quot;):\u003cbr /\u003e\nwith subtests.test(path=str(path)):\u003cbr /\u003e\nassert contains_docstring(path)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\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/pytest-dev/pytest/commit/d1b64aa60b9e1a0fcfaf03af7ebeb185f1024a87\"\u003e\u003ccode\u003ed1b64aa\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0a497c7b213ea950821319fd80dce219b0033f32\"\u003e\u003ccode\u003e0a497c7\u003c/code\u003e\u003c/a\u003e regendoc: remove CI environment variables (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13950\"\u003e#13950\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13951\"\u003e#13951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a9f7e6ed579b8844e302067b7f05122b82993355\"\u003e\u003ccode\u003ea9f7e6e\u003c/code\u003e\u003c/a\u003e 🧪 Run \u003ccode\u003egh release\u003c/code\u003e w/o Git in CI/CD (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13947\"\u003e#13947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2682a6607304f1f5bb5a2140340003cdf5121bc4\"\u003e\u003ccode\u003e2682a66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13944\"\u003e#13944\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/bef7d34f1...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a999997e36c53d189ecded3369bf35bfe2be96ad\"\u003e\u003ccode\u003ea999997\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13941\"\u003e#13941\u003c/a\u003e from nicoddemus/min-pre-commit-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/4bd63a0ead81d740aa767a4384d3b0b4c18f2ef2\"\u003e\u003ccode\u003e4bd63a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13935\"\u003e#13935\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/ce8b8a7b4...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/15f93b332c1c3ec9c200c0ad3d55af5a2158e0db\"\u003e\u003ccode\u003e15f93b3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e from webknjaz/maintenance/tox-pep517-env-setuptools...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0fa11ae3f79d06dc9e2f1f7c81ade4a1126d9ef3\"\u003e\u003ccode\u003e0fa11ae\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13927\"\u003e#13927\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/3d8075743...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/fa454700133c7b2cc960cba3b1cd09cc048c25a0\"\u003e\u003ccode\u003efa45470\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13926\"\u003e#13926\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d587e0cf8...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b4e3973505a2b7a2caa17ccc392d91a6ad73e122\"\u003e\u003ccode\u003eb4e3973\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13922\"\u003e#13922\u003c/a\u003e from bluetech/fix-argparse-userwarning\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `poethepoet` from 0.37.0 to 0.38.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nat-n/poethepoet/releases\"\u003epoethepoet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.38.0\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Add parallel task type by \u003ca href=\"https://github.com/nat-n\"\u003e\u003ccode\u003e@​nat-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/323\"\u003enat-n/poethepoet#323\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for python 3.9 by \u003ca href=\"https://github.com/nat-n\"\u003e\u003ccode\u003e@​nat-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/329\"\u003enat-n/poethepoet#329\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInternal changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor: executor options by \u003ca href=\"https://github.com/nat-n\"\u003e\u003ccode\u003e@​nat-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/328\"\u003enat-n/poethepoet#328\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/nat-n/poethepoet/compare/v0.37.0...v0.38.0\"\u003ehttps://github.com/nat-n/poethepoet/compare/v0.37.0...v0.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.38.0-beta\u003c/h2\u003e\n\u003ch2\u003ePre-release for parallel tasks\u003c/h2\u003e\n\u003cp\u003eAdds new \u003cem\u003eparallel\u003c/em\u003e task type that runs subtasks in parallel and multiplexes subprocess outputs with a line prefix\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMajor refactor of task orchestration to use asyncio\u003c/li\u003e\n\u003cli\u003eRewrite of signal handling logic to improve subprocess cleanup\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/nat-n/poethepoet/compare/v0.37.0...v0.38.0-beta\"\u003ehttps://github.com/nat-n/poethepoet/compare/v0.37.0...v0.38.0-beta\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/nat-n/poethepoet/commit/9e751f2cbc86d734f647520c4eb444dd042d3bf9\"\u003e\u003ccode\u003e9e751f2\u003c/code\u003e\u003c/a\u003e test: Try mitigate hanging flakey test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/fb01edbcb4de79312275b757b36ae338c8609516\"\u003e\u003ccode\u003efb01edb\u003c/code\u003e\u003c/a\u003e test: improve parallel task test stability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/ff04b331bf5dd433ae1486a70560fd67b1c2b458\"\u003e\u003ccode\u003eff04b33\u003c/code\u003e\u003c/a\u003e chore: drop support for python 3.9 (\u003ca href=\"https://redirect.github.com/nat-n/poethepoet/issues/329\"\u003e#329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/818c407c5a0710d75abce2e4510c2391689fff25\"\u003e\u003ccode\u003e818c407\u003c/code\u003e\u003c/a\u003e feat: Add parallel task type (\u003ca href=\"https://redirect.github.com/nat-n/poethepoet/issues/323\"\u003e#323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/3257781c5546348493b5c742196e32431cad74b2\"\u003e\u003ccode\u003e3257781\u003c/code\u003e\u003c/a\u003e refactor: executor options (\u003ca href=\"https://redirect.github.com/nat-n/poethepoet/issues/328\"\u003e#328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nat-n/poethepoet/compare/v0.37.0...v0.38.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` from 1.1.405 to 1.1.407\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/53e8efb4638daca6c541d18ad35dafb0e5d9f34d\"\u003e\u003ccode\u003e53e8efb\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.407 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/1d515b71299f9dc4c066ce37e673d93bda4bc2df\"\u003e\u003ccode\u003e1d515b7\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.406 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.405...v1.1.407\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.13.2 to 0.14.7\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.14.7\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-11-28.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Handle string literal bindings in suspicious-url-open-usage (\u003ccode\u003eS310\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21469\"\u003e#21469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR1708\u003c/code\u003e false positives on nested functions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21177\"\u003e#21177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix suppression for empty dict without tuple key annotation (\u003ccode\u003ePLE1141\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21290\"\u003e#21290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add rule \u003ccode\u003eRUF066\u003c/code\u003e to detect unnecessary class properties (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21535\"\u003e#21535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Catch more dummy variable uses (\u003ccode\u003eRUF052\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19799\"\u003e#19799\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[server] Set severity for non-rule diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21559\"\u003e#21559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] Avoid invalid fix in (\u003ccode\u003eISC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21517\"\u003e#21517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eparser\u003c/code\u003e] Fix panic when parsing IPython escape command expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21480\"\u003e#21480\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow partial fixability indicator in statistics output (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21513\"\u003e#21513\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikeleppane\"\u003e\u003ccode\u003e@​mikeleppane\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/senekor\"\u003e\u003ccode\u003e@​senekor\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShaharNaveh\"\u003e\u003ccode\u003e@​ShaharNaveh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JumboBear\"\u003e\u003ccode\u003e@​JumboBear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prakhar1144\"\u003e\u003ccode\u003e@​prakhar1144\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tsvikas\"\u003e\u003ccode\u003e@​tsvikas\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.14.7\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.14.7/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://github.com/astral-sh/ruff/releases/download/0.14.7/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.7\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-11-28.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Handle string literal bindings in suspicious-url-open-usage (\u003ccode\u003eS310\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21469\"\u003e#21469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR1708\u003c/code\u003e false positives on nested functions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21177\"\u003e#21177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix suppression for empty dict without tuple key annotation (\u003ccode\u003ePLE1141\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21290\"\u003e#21290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add rule \u003ccode\u003eRUF066\u003c/code\u003e to detect unnecessary class properties (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21535\"\u003e#21535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Catch more dummy variable uses (\u003ccode\u003eRUF052\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19799\"\u003e#19799\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[server] Set severity for non-rule diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21559\"\u003e#21559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] Avoid invalid fix in (\u003ccode\u003eISC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21517\"\u003e#21517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eparser\u003c/code\u003e] Fix panic when parsing IPython escape command expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21480\"\u003e#21480\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow partial fixability indicator in statistics output (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21513\"\u003e#21513\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikeleppane\"\u003e\u003ccode\u003e@​mikeleppane\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/senekor\"\u003e\u003ccode\u003e@​senekor\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShaharNaveh\"\u003e\u003ccode\u003e@​ShaharNaveh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JumboBear\"\u003e\u003ccode\u003e@​JumboBear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prakhar1144\"\u003e\u003ccode\u003e@​prakhar1144\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tsvikas\"\u003e\u003ccode\u003e@​tsvikas\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-11-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Support new PySNMP API paths (\u003ccode\u003eS508\u003c/code\u003e, \u003ccode\u003eS509\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21374\"\u003e#21374\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdjust own-line comment placement between branches (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21185\"\u003e#21185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error when formatting attribute expressions with outer parentheses, parenthesized value, and trailing comment on value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20418\"\u003e#20418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic when formatting comments in unary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21501\"\u003e#21501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003efmt: skip\u003c/code\u003e for compound statements on a single line (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20633\"\u003e#20633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix \u003ccode\u003eFURB103\u003c/code\u003e autofix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21454\"\u003e#21454\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/ecab623fb2fe3846de4cafa0dfef0385a7245941\"\u003e\u003ccode\u003eecab623\u003c/code\u003e\u003c/a\u003e Bump 0.14.7 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21684\"\u003e#21684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42f152108aad444b7d65359aea931be4dd15dffd\"\u003e\u003ccode\u003e42f1521\u003c/code\u003e\u003c/a\u003e [ty] Generic types aliases (implicit and PEP 613) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21553\"\u003e#21553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/594b7b04d3b04bcf42861f86207017c8117678ca\"\u003e\u003ccode\u003e594b7b0\u003c/code\u003e\u003c/a\u003e [ty] Preserve quoting style when autofixing \u003ccode\u003eTypedDict\u003c/code\u003e keys (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21682\"\u003e#21682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b5b4917d7f4a324f5d32cc55dfb1d08e75cc9e6f\"\u003e\u003ccode\u003eb5b4917\u003c/code\u003e\u003c/a\u003e [ty] Fix override of final method summary (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21681\"\u003e#21681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0084e94f78742685ddacf2dab28530c2ece3393e\"\u003e\u003ccode\u003e0084e94\u003c/code\u003e\u003c/a\u003e [ty] Fix subtyping of \u003ccode\u003etype[Any]\u003c/code\u003e / \u003ccode\u003etype[T]\u003c/code\u003e and protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21678\"\u003e#21678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/566c959add8c5aa5d25fd14db513c792e4048b50\"\u003e\u003ccode\u003e566c959\u003c/code\u003e\u003c/a\u003e [ty] Rename \u003ccode\u003eReferenceRequestHandler\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21680\"\u003e#21680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8bcfc198b83051db0c8a3c7b8f0c8a8c339947c7\"\u003e\u003ccode\u003e8bcfc19\u003c/code\u003e\u003c/a\u003e [ty] Implement \u003ccode\u003etyping.final\u003c/code\u003e for methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21646\"\u003e#21646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c534bfaf01671b8020edd440bc7f4f22070af583\"\u003e\u003ccode\u003ec534bfa\u003c/code\u003e\u003c/a\u003e [ty] Implement patterns and typevars in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21671\"\u003e#21671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5e1b2eef5797b00de8329bf38ceacf5cacd00c87\"\u003e\u003ccode\u003e5e1b2ee\u003c/code\u003e\u003c/a\u003e [ty] implement rendering of \u003ccode\u003e.. code:: lang\u003c/code\u003e in docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21665\"\u003e#21665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/98681b9356bd0b8ef086cc54118b58de532c5310\"\u003e\u003ccode\u003e98681b9\u003c/code\u003e\u003c/a\u003e [ty] Add \u003ccode\u003edb\u003c/code\u003e parameter to \u003ccode\u003eParameters::new\u003c/code\u003e method (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21674\"\u003e#21674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.2...0.14.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `vermin` from 1.6.0 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/b70ff9611a01a2bf2f702aa537d14e71e330edba\"\u003e\u003ccode\u003eb70ff96\u003c/code\u003e\u003c/a\u003e Version 1.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/7e391d68963d7d796feb16f16f6b174a63bf9afe\"\u003e\u003ccode\u003e7e391d6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/netromdk/vermin/issues/309\"\u003e#309\u003c/a\u003e from netromdk/py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/06690b26d6c52c3097daef8400689ac122be4379\"\u003e\u003ccode\u003e06690b2\u003c/code\u003e\u003c/a\u003e [3.14] Template string literals detection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/ccc1b6345f3db5903366b1fa2ae0c2f3776b4d8a\"\u003e\u003ccode\u003eccc1b63\u003c/code\u003e\u003c/a\u003e [3.14] Add new rules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/8bb50725d5dfc70c8c611fbdf24b71d294ce7683\"\u003e\u003ccode\u003e8bb5072\u003c/code\u003e\u003c/a\u003e [3.14] Support ast.Constant where only ast.Str was used before\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/4957d625735c708971e7372c009942f2e46ba8df\"\u003e\u003ccode\u003e4957d62\u003c/code\u003e\u003c/a\u003e [actions] Run Bandit with py3.13 until py3.14 support arrives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/5dd0b3b37e8eb7ddc93ce5fb5ba5ae3d11e30c9c\"\u003e\u003ccode\u003e5dd0b3b\u003c/code\u003e\u003c/a\u003e Replace setup.py with pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/4aaf06b7b8ba23eddaa975d648d4e8d7c45264a9\"\u003e\u003ccode\u003e4aaf06b\u003c/code\u003e\u003c/a\u003e [flake8] Fix style\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/eb09cfa005308bc7d9bcc2e9275889a612466e78\"\u003e\u003ccode\u003eeb09cfa\u003c/code\u003e\u003c/a\u003e [actions] Update analysis requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/801c17ec82da8a6420c54dc8af6cbca3260ec508\"\u003e\u003ccode\u003e801c17e\u003c/code\u003e\u003c/a\u003e [actions] Test and analyze using py3.14\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/netromdk/vermin/compare/v1.6.0...v1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.13.5 to 4.14.3\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml` from 6.0.1 to 6.0.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lxml/lxml/blob/master/CHANGES.txt\"\u003elxml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e6.0.2 (2025-09-21)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eLP#2125278: Compilation with libxml2 2.15.0 failed.\nOriginal patch by Xi Ruoyao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSetting \u003ccode\u003edecompress=True\u003c/code\u003e in the parser had no effect in libxml2 2.15.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBinary wheels on Linux and macOS use the library version libxml2 2.14.6.\nSee \u003ca href=\"https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.6\"\u003ehttps://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.6\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTest failures in libxml2 2.15.0 were fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBinary wheels for Py3.9-3.11 on the \u003ccode\u003eriscv64\u003c/code\u003e architecture were added.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eError constants were updated to match libxml2 2.15.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBuilt using Cython 3.1.4.\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/lxml/lxml/commit/283d02ec8966c0e99f4666dc7bdd936479e97246\"\u003e\u003ccode\u003e283d02e\u003c/code\u003e\u003c/a\u003e Build: Minor readability cleanup.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/52cf97c1a473a78fb4a9d4bf4f45dc69dd67932b\"\u003e\u003ccode\u003e52cf97c\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Build: Avoid redundant manylinux2014 builds across newer jobs.\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/a21e4748eaedc4d6f8120afddfa496a5b887c73d\"\u003e\u003ccode\u003ea21e474\u003c/code\u003e\u003c/a\u003e Build: Avoid redundant manylinux2014 builds across newer jobs.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/58d4d2bf794dfb3bb66118a2db856a7174fcabe8\"\u003e\u003ccode\u003e58d4d2b\u003c/code\u003e\u003c/a\u003e Build: Upgrade libxml2 to 2.14.6.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/e5d80da388690cdcab15a7047aa9c617f66083b7\"\u003e\u003ccode\u003ee5d80da\u003c/code\u003e\u003c/a\u003e Build: Clean up and simplify target selection and environment setup in pyproj...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/e9133801e12bc2f3a5d589f70deb5a9621b2d009\"\u003e\u003ccode\u003ee913380\u003c/code\u003e\u003c/a\u003e Build: Limit optimised wheel builds to AMD64 and Arm64 to save time and resou...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/d22f6a1b9efa615bf48453251050cd8abd12e65a\"\u003e\u003ccode\u003ed22f6a1\u003c/code\u003e\u003c/a\u003e Build: bump actions/setup-python in the github-actions group (\u003ca href=\"https://redirect.github.com/lxml/lxml/issues/479\"\u003eGH-479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/f8fa76d97785d05a8376ec5e21a05997476e27f9\"\u003e\u003ccode\u003ef8fa76d\u003c/code\u003e\u003c/a\u003e Build: Prevent redundant branch wheel builds for pull requests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/b3e93721a6811cfd007dd829c89cd0406351b171\"\u003e\u003ccode\u003eb3e9372\u003c/code\u003e\u003c/a\u003e Build: bump pypa/cibuildwheel in the github-actions group (\u003ca href=\"https://redirect.github.com/lxml/lxml/issues/478\"\u003eGH-478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/a7ec229a147fb7618d00b44e4e30eeb1f521e15a\"\u003e\u003ccode\u003ea7ec229\u003c/code\u003e\u003c/a\u003e Prepare release of lxml 6.0.2.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lxml/lxml/compare/lxml-6.0.1...lxml-6.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-extra-types` from 2.10.5 to 2.10.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-extra-types/releases\"\u003epydantic-extra-types's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.10.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: update credit card brands by \u003ca href=\"https://github.com/LorhanSohaky\"\u003e\u003ccode\u003e@​LorhanSohaky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/325\"\u003epydantic/pydantic-extra-types#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix various documentation layout issues by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/328\"\u003epydantic/pydantic-extra-types#328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded test coverage for DomainStr validation including punycode and invalid inputs by \u003ca href=\"https://github.com/rhealakhotia\"\u003e\u003ccode\u003e@​rhealakhotia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/330\"\u003epydantic/pydantic-extra-types#330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ Add time parsing to \u003ccode\u003ependulum\u003c/code\u003e by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/331\"\u003epydantic/pydantic-extra-types#331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative path creation on Windows for fixtures by \u003ca href=\"https://github.com/denini08\"\u003e\u003ccode\u003e@​denini08\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/333\"\u003epydantic/pydantic-extra-types#333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump samuelcolvin/check-python-version from 4.1 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/336\"\u003epydantic/pydantic-extra-types#336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/334\"\u003epydantic/pydantic-extra-types#334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/335\"\u003epydantic/pydantic-extra-types#335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix-isbn-typos by \u003ca href=\"https://github.com/gem7318\"\u003e\u003ccode\u003e@​gem7318\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/337\"\u003epydantic/pydantic-extra-types#337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e♻️ refactor \u003ccode\u003emac_address\u003c/code\u003e validation logic by \u003ca href=\"https://github.com/Stormageddon37\"\u003e\u003ccode\u003e@​Stormageddon37\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/338\"\u003epydantic/pydantic-extra-types#338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 set \u003ccode\u003e@classmethod\u003c/code\u003e in \u003ccode\u003ephone_numbers\u003c/code\u003e schema by \u003ca href=\"https://github.com/Stormageddon37\"\u003e\u003ccode\u003e@​Stormageddon37\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/339\"\u003epydantic/pydantic-extra-types#339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📝 chore: fix random typos by \u003ca href=\"https://github.com/Stormageddon37\"\u003e\u003ccode\u003e@​Stormageddon37\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/340\"\u003epydantic/pydantic-extra-types#340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs: enhance docstring for \u003ccode\u003ePhoneNumber\u003c/code\u003e class with usage examples by \u003ca href=\"https://github.com/hengky-kurniawan-1\"\u003e\u003ccode\u003e@​hengky-kurniawan-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/341\"\u003epydantic/pydantic-extra-types#341\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded cron type by \u003ca href=\"https://github.com/Neko1313\"\u003e\u003ccode\u003e@​Neko1313\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/343\"\u003epydantic/pydantic-extra-types#343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔖 Release version 2.10.6 by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/344\"\u003epydantic/pydantic-extra-types#344\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/LorhanSohaky\"\u003e\u003ccode\u003e@​LorhanSohaky\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/325\"\u003epydantic/pydantic-extra-types#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rhealakhotia\"\u003e\u003ccode\u003e@​rhealakhotia\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/330\"\u003epydantic/pydantic-extra-types#330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denini08\"\u003e\u003ccode\u003e@​denini08\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/333\"\u003epydantic/pydantic-extra-types#333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gem7318\"\u003e\u003ccode\u003e@​gem7318\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/337\"\u003epydantic/pydantic-extra-types#337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stormageddon37\"\u003e\u003ccode\u003e@​Stormageddon37\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/338\"\u003epydantic/pydantic-extra-types#338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hengky-kurniawan-1\"\u003e\u003ccode\u003e@​hengky-kurniawan-1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/341\"\u003epydantic/pydantic-extra-types#341\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Neko1313\"\u003e\u003ccode\u003e@​Neko1313\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/343\"\u003epydantic/pydantic-extra-types#343\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-extra-types/compare/v2.10.5...v2.10.6\"\u003ehttps://github.com/pydantic/pydantic-extra-types/compare/v2.10.5...v2.10.6\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/pydantic/pydantic-extra-types/commit/bede93598e4b5971538b8c3684ee588ee79c7f68\"\u003e\u003ccode\u003ebede935\u003c/code\u003e\u003c/a\u003e 🔖 Release version 2.10.6 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/3c8675856b09cd758ad881d2432104213ae5072e\"\u003e\u003ccode\u003e3c86758\u003c/code\u003e\u003c/a\u003e :sparkles: add Cron type (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/7ec0329f4a3065d9c67027f22ee65802986b799c\"\u003e\u003ccode\u003e7ec0329\u003c/code\u003e\u003c/a\u003e 📝 docs: enhance docstring for  class with usage examples (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/f163d0779ff94dc0e5c719874d6fd41b684e097a\"\u003e\u003ccode\u003ef163d07\u003c/code\u003e\u003c/a\u003e 📝 chore: fix random typos (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/340\"\u003e#340\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/47aa78ee91b5834a47d87f224534b3c1cc509170\"\u003e\u003ccode\u003e47aa78e\u003c/code\u003e\u003c/a\u003e 🐛 set \u003ccode\u003e@classmethod\u003c/code\u003e in \u003ccode\u003ephone_numbers\u003c/code\u003e schema (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/339\"\u003e#339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/ecf1e330a25dce4170e0e8a3f58918fa42a1f8b0\"\u003e\u003ccode\u003eecf1e33\u003c/code\u003e\u003c/a\u003e ♻️ refactor \u003ccode\u003emac_address\u003c/code\u003e validation logic (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/c8a419ef3ebac5c2e55f5db710004913404f866b\"\u003e\u003ccode\u003ec8a419e\u003c/code\u003e\u003c/a\u003e docs: fix-isbn-typos (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/337\"\u003e#337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/095255cd319aa5d1cf720dd730cd50d529694546\"\u003e\u003ccode\u003e095255c\u003c/code\u003e\u003c/a\u003e ⬆ Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/335\"\u003e#335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/43f5eaa0d8011a36ffaed491ce27d1ab677921c8\"\u003e\u003ccode\u003e43f5eaa\u003c/code\u003e\u003c/a\u003e ⬆ Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/334\"\u003e#334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/e84d875a38be4b522fab8cf4b33f9de6757294be\"\u003e\u003ccode\u003ee84d875\u003c/code\u003e\u003c/a\u003e ⬆ Bump samuelcolvin/check-python-version from 4.1 to 5 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/336\"\u003e#336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-extra-types/compare/v2.10.5...v2.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `more-itertools` from 10.7.0 to 10.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/more-itertools/more-itertools/releases\"\u003emore-itertools's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 10.8.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix typo in version history for 10.7.0 by bbayles in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/981\"\u003emore-itertools/more-itertools#981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 980: Fix variable names: iterable vs iterator by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/982\"\u003emore-itertools/more-itertools#982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove docstrings for dft, idft, and multinomial by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/983\"\u003emore-itertools/more-itertools#983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a note about polynomial endianness by bbayles in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/984\"\u003emore-itertools/more-itertools#984\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd SPDX license identifier by cdce8p in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/978\"\u003emore-itertools/more-itertools#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove setup.py file by cdce8p in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/979\"\u003emore-itertools/more-itertools#979\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003ederangements\u003c/code\u003e by itself by bbayles in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/985\"\u003emore-itertools/more-itertools#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd derangements by debruijn in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/946\"\u003emore-itertools/more-itertools#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 986: argmin and argmax by bbayles in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/988\"\u003emore-itertools/more-itertools#988\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit-out the integer math functions by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/990\"\u003emore-itertools/more-itertools#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpelling, grammar, punctuation, and usage by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/991\"\u003emore-itertools/more-itertools#991\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the return type of more_itertools.batched by qobilidop in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/993\"\u003emore-itertools/more-itertools#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix duplicate words in version_history.rst by saadmanrafat in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/992\"\u003emore-itertools/more-itertools#992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove islice_extended memory usage when start\u0026lt;0 and step\u0026gt;0 by ben42code in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/995\"\u003emore-itertools/more-itertools#995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnittest islice_extended impact on iterated elements lifecycle by ben42code in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/996\"\u003emore-itertools/more-itertools#996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003econvolve() is agnostic to endianness by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/997\"\u003emore-itertools/more-itertools#997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSample simplification by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/998\"\u003emore-itertools/more-itertools#998\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 1005: Document difference from builtin min() and max(). by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1008\"\u003emore-itertools/more-itertools#1008\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGeneral cleanups by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1007\"\u003emore-itertools/more-itertools#1007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken link by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1004\"\u003emore-itertools/more-itertools#1004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd option for nth_prime() to be approximated by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1002\"\u003emore-itertools/more-itertools#1002\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebefore_and_after improvement by pochmann3 in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1012\"\u003emore-itertools/more-itertools#1012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFast paths instead of applying an identity function by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1018\"\u003emore-itertools/more-itertools#1018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed-up _complex_sumprod() by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1000\"\u003emore-itertools/more-itertools#1000\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove islice_extended memory usage when stop\u0026lt;0 and step\u0026gt;0 by ben42code in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/999\"\u003emore-itertools/more-itertools#999\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd derangements() to the doc indexes by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1020\"\u003emore-itertools/more-itertools#1020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove readability/findability with combinatoric subsections by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1022\"\u003emore-itertools/more-itertools#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix 1009: Confused docstring for minmax() by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1021\"\u003emore-itertools/more-itertools#1021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003einterleave_longest\u003c/code\u003e by pochmann3 in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1027\"\u003emore-itertools/more-itertools#1027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 1001: fix last() when \u003cstrong\u003ereversed\u003c/strong\u003e is None by inventshah in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1028\"\u003emore-itertools/more-itertools#1028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 1029: fix batched IDE/help() docs by inventshah in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1031\"\u003emore-itertools/more-itertools#1031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003emark_ends\u003c/code\u003e by pochmann3 in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1035\"\u003emore-itertools/more-itertools#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd usage notes for sample() by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1037\"\u003emore-itertools/more-itertools#1037\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docstring and comment in private _nth_prime_bounds function by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1036\"\u003emore-itertools/more-itertools#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix linespacing by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1038\"\u003emore-itertools/more-itertools#1038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd running_median by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1039\"\u003emore-itertools/more-itertools#1039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erunning_median() with windowed data by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1040\"\u003emore-itertools/more-itertools#1040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin furo to 2024.08.06 by bbayles in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1043\"\u003emore-itertools/more-itertools#1043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Fix invisible REPL output in HTML dark mode by moreati in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1045\"\u003emore-itertools/more-itertools#1045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse python instead of python3 when running tests by ktbarrett in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1051\"\u003emore-itertools/more-itertools#1051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 1044: Add new tool: extract() by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1056\"\u003emore-itertools/more-itertools#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest 3.14.0-rc.2 by bbayles in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1060\"\u003emore-itertools/more-itertools#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eunzip\u003c/code\u003e: replace custom itemgetter by pochmann3 in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1059\"\u003emore-itertools/more-itertools#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003einterleave_randomly\u003c/code\u003e by ktbarrett in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1048\"\u003emore-itertools/more-itertools#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 1003: Multidimensional reshape() by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1062\"\u003emore-itertools/more-itertools#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGet coverage to 100% by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1065\"\u003emore-itertools/more-itertools#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove count_cycle() by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1066\"\u003emore-itertools/more-itertools#1066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify how derangements treats duplicate inputs by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1069\"\u003emore-itertools/more-itertools#1069\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/more-itertools/more-itertools/commit/8c1a6ef241b51ff055e89219f050ccf4f15f37f6\"\u003e\u003ccode\u003e8c1a6ef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/issues/1071\"\u003e#1071\u003c/a\u003e from more-itertools/version-10.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/24be4400152530567fc308578ce5e8072ad77982\"\u003e\u003ccode\u003e24be440\u003c/code\u003e\u003c/a\u003e Add note for issue 1054\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/3dd5980a6d73bb9902a4ab1fb1eb05d512081f86\"\u003e\u003ccode\u003e3dd5980\u003c/code\u003e\u003c/a\u003e Add a note for issue 1063\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/2ce52d104921364729df909c03f52ae7e2085f82\"\u003e\u003ccode\u003e2ce52d1\u003c/code\u003e\u003c/a\u003e Update docs for 10.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/eae915618a81fa1263484630c892408fc5670d5a\"\u003e\u003ccode\u003eeae9156\u003c/code\u003e\u003c/a\u003e Bump version: 10.7.0 → 10.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/a80f1c56f513a2758445372f263efae6f7337561\"\u003e\u003ccode\u003ea80f1c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/issues/1068\"\u003e#1068\u003c/a\u003e from rhettinger/cleanup_tail\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/57015894e4f043f33b98d5565b720054e926bc14\"\u003e\u003ccode\u003e5701589\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/issues/1067\"\u003e#1067\u003c/a\u003e from rhettinger/reshape_beautification\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/58e0331c4e542ea950aa0e55bfecd2eeb9e641d8\"\u003e\u003ccode\u003e58e0331\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/issues/1069\"\u003e#1069\u003c/a\u003e from rhettinger/derangements_doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/9a3d7e31e6956446453ee0a9224b842bf21e3022\"\u003e\u003ccode\u003e9a3d7e3\u003c/code\u003e\u003c/a\u003e Clarify how derangements treats duplicate inputs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/c509b1434ebe5201a6f7298d7495da5914dd88d4\"\u003e\u003ccode\u003ec509b14\u003c/code\u003e\u003c/a\u003e Clean-up tail().  Prefer try/except over the Sized ABC.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/more-itertools/more-itertools/compare/v10.7.0...v10.8.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/reznakt/svglab/pull/69","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/reznakt%2Fsvglab/issues/69","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/69/packages"},{"uuid":"3680986567","node_id":"PR_kwDOJpUnI862WJFs","number":111,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 50 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-01T10:38:09.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-01T13:19:11.000Z","updated_at":"2026-01-01T10:38:11.000Z","time_to_close":2668738,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":50,"packages":[{"name":"black","old_version":"25.9.0","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.10.7","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.0","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.13.3","new_version":"0.14.7","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"matplotlib","old_version":"3.10.6","new_version":"3.10.7","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"deptry","old_version":"0.23.1","new_version":"0.24.0","repository_url":"https://github.com/fpgmaas/deptry"},{"name":"pyarrow","old_version":"21.0.0","new_version":"22.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"anyio","old_version":"4.11.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"beautifulsoup4","old_version":"4.14.2","new_version":"4.14.3"},{"name":"bleach","old_version":"6.2.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"certifi","old_version":"2025.10.5","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cfgv","old_version":"3.4.0","new_version":"3.5.0","repository_url":"https://github.com/asottile/cfgv"},{"name":"charset-normalizer","old_version":"3.4.3","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.0","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"exceptiongroup","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.19.1","new_version":"3.20.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.60.1","new_version":"4.61.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"ipykernel","old_version":"6.30.1","new_version":"7.1.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ipywidgets","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"jupyterlab","old_version":"4.4.9","new_version":"4.5.0","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"jupyterlab-widgets","old_version":"3.0.15","new_version":"3.0.16","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"lark","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"numexpr","old_version":"2.13.1","new_version":"2.14.1","repository_url":"https://github.com/pydata/numexpr"},{"name":"pillow","old_version":"11.3.0","new_version":"12.0.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"psutil","old_version":"7.1.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"rpds-py","old_version":"0.27.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"ruamel-yaml","old_version":"0.18.15","new_version":"0.18.16"},{"name":"ruamel-yaml-clib","old_version":"0.2.14","new_version":"0.2.15"},{"name":"starlette","old_version":"0.48.0","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"tomli","old_version":"2.2.1","new_version":"2.3.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"types-pytz","old_version":"2025.2.0.20250809","new_version":"2025.2.0.20251108","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"uvicorn","old_version":"0.37.0","new_version":"0.38.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.34.0","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"webcolors","old_version":"24.11.1","new_version":"25.10.0","repository_url":"https://github.com/ubernostrum/webcolors"},{"name":"websocket-client","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/websocket-client/websocket-client"},{"name":"widgetsnbextension","old_version":"4.0.14","new_version":"4.0.15"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 47 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [black](https://github.com/psf/black) | `25.9.0` | `25.11.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.7` | `7.12.0` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.3` | `0.14.7` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.6` | `3.10.7` |\n| [deptry](https://github.com/fpgmaas/deptry) | `0.23.1` | `0.24.0` |\n| [pyarrow](https://github.com/apache/arrow) | `21.0.0` | `22.0.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.12.0` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.2` | `4.14.3` |\n| [bleach](https://github.com/mozilla/bleach) | `6.2.0` | `6.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.10.5` | `2025.11.12` |\n| [cfgv](https://github.com/asottile/cfgv) | `3.4.0` | `3.5.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.3` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.3.0` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.19.1` | `3.20.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.60.1` | `4.61.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.30.1` | `7.1.0` |\n| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.7` | `8.1.8` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.4.9` | `4.5.0` |\n| [jupyterlab-widgets](https://github.com/jupyter-widgets/ipywidgets) | `3.0.15` | `3.0.16` |\n| [lark](https://github.com/lark-parser/lark) | `1.3.0` | `1.3.1` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [numexpr](https://github.com/pydata/numexpr) | `2.13.1` | `2.14.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.3.0` | `12.0.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.4.0` | `4.5.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.0` | `7.1.3` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.1` | `0.30.0` |\n| ruamel-yaml | `0.18.15` | `0.18.16` |\n| ruamel-yaml-clib | `0.2.14` | `0.2.15` |\n| [starlette](https://github.com/Kludex/starlette) | `0.48.0` | `0.50.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.3.0` |\n| [types-pytz](https://github.com/typeshed-internal/stub_uploader) | `2025.2.0.20250809` | `2025.2.0.20251108` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.37.0` | `0.38.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.34.0` | `20.35.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [webcolors](https://github.com/ubernostrum/webcolors) | `24.11.1` | `25.10.0` |\n| [websocket-client](https://github.com/websocket-client/websocket-client) | `1.8.0` | `1.9.0` |\n| [widgetsnbextension](http://jupyter.org) | `4.0.14` | `4.0.15` |\n\n\nUpdates `black` from 25.9.0 to 25.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where python 3.12 generics syntax split line happens weirdly (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize type comments to form \u003ccode\u003e# type: \u0026lt;value\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e preview feature to respect \u003ccode\u003e# fmt: skip\u003c/code\u003e for compound\nstatements with semicolon-separated bodies (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eno_cache\u003c/code\u003e option to control caching behavior. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4803\"\u003e#4803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Linux binaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4773\"\u003e#4773\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWrite unchanged content to stdout when excluding formatting from stdin using pipes\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented BlackDClient. This simple python client allows to easily send formatting\nrequests to blackd (\u003ca href=\"https://redirect.github.com/psf/black/issues/4774\"\u003e#4774\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable 3.14 base CI (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to support the \u003ccode\u003erequired-version\u003c/code\u003e major-version-only\n\u0026quot;stability\u0026quot; format when using pyproject.toml (\u003ca href=\"https://redirect.github.com/psf/black/issues/4770\"\u003e#4770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for vim plugin users. It now handles independently vim version\u003c/li\u003e\n\u003cli\u003eVim: Warn on unsupported Vim and Python versions independently (\u003ca href=\"https://redirect.github.com/psf/black/issues/4772\"\u003e#4772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Print the import paths when importing black fails (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Fix handling of virtualenvs that have a different Python version (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where python 3.12 generics syntax split line happens weirdly (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize type comments to form \u003ccode\u003e# type: \u0026lt;value\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e preview feature to respect \u003ccode\u003e# fmt: skip\u003c/code\u003e for compound\nstatements with semicolon-separated bodies (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eno_cache\u003c/code\u003e option to control caching behavior. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4803\"\u003e#4803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Linux binaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4773\"\u003e#4773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWrite unchanged content to stdout when excluding formatting from stdin using pipes\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented BlackDClient. This simple python client allows to easily send formatting\nrequests to blackd (\u003ca href=\"https://redirect.github.com/psf/black/issues/4774\"\u003e#4774\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable 3.14 base CI (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to support the \u003ccode\u003erequired-version\u003c/code\u003e major-version-only\n\u0026quot;stability\u0026quot; format when using pyproject.toml (\u003ca href=\"https://redirect.github.com/psf/black/issues/4770\"\u003e#4770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for vim plugin users. It now handles independently vim version\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/05f0a8ce1f71fbb36e1e032d3b518c7b945089a2\"\u003e\u003ccode\u003e05f0a8c\u003c/code\u003e\u003c/a\u003e Prepare for 25.11.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4825\"\u003e#4825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ae17c61310e44401ca55d17a9c01db1dc03940a6\"\u003e\u003ccode\u003eae17c61\u003c/code\u003e\u003c/a\u003e Fix tests on pytest 9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4835\"\u003e#4835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/138745eca650aa59ab30458f7b1c026b66608a09\"\u003e\u003ccode\u003e138745e\u003c/code\u003e\u003c/a\u003e Include Windows and Python 3.14 in PR wheel build matrix, fix Windows build (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/18170d6d8d9bdde97d4cd3568cfa8be434a09ff3\"\u003e\u003ccode\u003e18170d6\u003c/code\u003e\u003c/a\u003e ci: add label for running all builds on a pull request (\u003ca href=\"https://redirect.github.com/psf/black/issues/4833\"\u003e#4833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0e793e3d7e0d12dbda1573fa1bb785b1f066ee7c\"\u003e\u003ccode\u003e0e793e3\u003c/code\u003e\u003c/a\u003e fix windows wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4830\"\u003e#4830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b71f36c9fda07930c83e22681e0ec08ddf5a3980\"\u003e\u003ccode\u003eb71f36c\u003c/code\u003e\u003c/a\u003e Use build[uv] as cibuildwheel frontend (\u003ca href=\"https://redirect.github.com/psf/black/issues/4831\"\u003e#4831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a7bd594493bb5cb703beee877a2df40556b0baaa\"\u003e\u003ccode\u003ea7bd594\u003c/code\u003e\u003c/a\u003e Skip free threaded builds in cibuildwheel (\u003ca href=\"https://redirect.github.com/psf/black/issues/4829\"\u003e#4829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/862dee91fa1259ca2bc00f10538b52a4959bdbe8\"\u003e\u003ccode\u003e862dee9\u003c/code\u003e\u003c/a\u003e Update cibuildwheel (\u003ca href=\"https://redirect.github.com/psf/black/issues/4828\"\u003e#4828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b5f354c56627640e0b853af51a51d9262bafa9f0\"\u003e\u003ccode\u003eb5f354c\u003c/code\u003e\u003c/a\u003e build: restrict to pytest 9.0 due to breakage in custom pytest_configure (\u003ca href=\"https://redirect.github.com/psf/black/issues/4827\"\u003e#4827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f705197f57149b79ed83cccf22e4fed19b48a7bf\"\u003e\u003ccode\u003ef705197\u003c/code\u003e\u003c/a\u003e t-string support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.9.0...25.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.7 to 7.12.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.12.0 — 2025-11-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe HTML report now shows separate coverage totals for statements and\nbranches, as well as the usual combined coverage percentage. Thanks to Ryuta\nOtsuka for the \u003ccode\u003ediscussion \u0026lt;issue 2081_\u0026gt;\u003c/code\u003e_ and the \u003ccode\u003eimplementation \u0026lt;pull 2085_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe JSON report now includes separate coverage totals for statements and\nbranches, thanks to \u003ccode\u003eRyuta Otsuka \u0026lt;pull 2090_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eexcept*\u003c/code\u003e clauses were not handled properly under the \u0026quot;sysmon\u0026quot;\nmeasurement core, causing KeyError exceptions as described in \u003ccode\u003eissue 2086\u003c/code\u003e_.\nThis is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now defend against aggressive mocking of \u003ccode\u003eopen()\u003c/code\u003e that could cause\nerrors inside coverage.py.  An example of a failure is in \u003ccode\u003eissue 2083\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: in unusual cases where a test suite intentionally exhausts the system's\nfile descriptors to test handling errors in \u003ccode\u003eopen()\u003c/code\u003e, coverage.py would\nfail when trying to open source files, as described in \u003ccode\u003eissue 2091\u003c/code\u003e_.  This\nis now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eA small tweak to the HTML report: file paths now use thin spaces around\nslashes to make them easier to read.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2081: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2081\"\u003ecoveragepy/coveragepy#2081\u003c/a\u003e\n.. _issue 2083: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2083\"\u003ecoveragepy/coveragepy#2083\u003c/a\u003e\n.. _pull 2085: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2085\"\u003ecoveragepy/coveragepy#2085\u003c/a\u003e\n.. _issue 2086: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2086\"\u003ecoveragepy/coveragepy#2086\u003c/a\u003e\n.. _pull 2090: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2090\"\u003ecoveragepy/coveragepy#2090\u003c/a\u003e\n.. _issue 2091: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2091\"\u003ecoveragepy/coveragepy#2091\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-11-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.11.3 — 2025-11-09\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the 7.11.1 changes meant that conflicts between a requested measurement\ncore and other settings would raise an error. This was a breaking change from\nprevious behavior, as reported in \u003ccode\u003eissue 2076\u003c/code\u003e_ and \u003ccode\u003eissue 2078\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eThe previous behavior has been restored: when the requested core conflicts\nwith other settings, another core is used instead, and a warning is issued.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFor contributors: the repo has moved from Ned's \u003ccode\u003enedbat GitHub account\u003c/code\u003e_ to\nthe \u003ccode\u003ecoveragepy GitHub organization\u003c/code\u003e_. The default branch has changed from\nmaster to main.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63db2b12d7a4fedda90061553ccf2ec6849c8a3d\"\u003e\u003ccode\u003e63db2b1\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/598bbc3a51a492860547e7c3d8d076b811efe1bb\"\u003e\u003ccode\u003e598bbc3\u003c/code\u003e\u003c/a\u003e docs: prep for 7.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/557dd15f75bc4b4bf93b6163a9e6b2b29647d90d\"\u003e\u003ccode\u003e557dd15\u003c/code\u003e\u003c/a\u003e feat: add statement and branch coverage percentages to JSON report (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2090\"\u003e#2090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e18359c834f0f428425b62fc564ec6d106d413e5\"\u003e\u003ccode\u003ee18359c\u003c/code\u003e\u003c/a\u003e fix: don't crash if open() genuinely fails. \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2091\"\u003e#2091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/fff5e59b28e0a4660a5e19975eb02aeffcb05a01\"\u003e\u003ccode\u003efff5e59\u003c/code\u003e\u003c/a\u003e docs: thanks, Ryuta Otsuka \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2085\"\u003e#2085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/97bf6251ef0c40174645d6fb0352a25df3531e72\"\u003e\u003ccode\u003e97bf625\u003c/code\u003e\u003c/a\u003e docs: support files for the sample html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8320b746113ec269437d3465873ff7ae19eeccc1\"\u003e\u003ccode\u003e8320b74\u003c/code\u003e\u003c/a\u003e style(html): tweak the styling for the new stmt/branch stats \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2085\"\u003e#2085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/7e081839b0987c6a9b3bba4efe86e80deb1c1776\"\u003e\u003ccode\u003e7e08183\u003c/code\u003e\u003c/a\u003e feat(templite): {% else %}\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/4abe253c579db1b3d72a4b2dfd52bf9b7c2fc2aa\"\u003e\u003ccode\u003e4abe253\u003c/code\u003e\u003c/a\u003e feat: add statement and branch coverage columns to index.html report (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2085\"\u003e#2085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ddbafa90974ff4de00467f05ba712d6d21937920\"\u003e\u003ccode\u003eddbafa9\u003c/code\u003e\u003c/a\u003e build: no longer need to work around a pytest/iTerm2 bug\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.10.7...7.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMypy Release Notes\u003c/h1\u003e\n\u003ch2\u003eNext Release\u003c/h2\u003e\n\u003ch3\u003eDrop Support for Python 3.9\u003c/h3\u003e\n\u003cp\u003eMypy no longer supports running with Python 3.9, which has reached end-of-life.\nWhen running mypy with Python 3.10+, it is still possible to type check code\nthat needs to support Python 3.9 with the \u003ccode\u003e--python-version 3.9\u003c/code\u003e argument.\nSupport for this will be dropped in the first half of 2026!\u003c/p\u003e\n\u003cp\u003eContributed by Marc Mueller (PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20156\"\u003e20156\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eMypy 1.19\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.19.0 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\nimprovements and bug fixes. You can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Support Ending Soon\u003c/h3\u003e\n\u003cp\u003eThis is the last mypy feature release that supports Python 3.9, which reached\nend of life in October 2025.\u003c/p\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to a more dynamic SCC processing logic (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20053\"\u003e20053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up type aliases (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19810\"\u003e19810\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed‑Format Cache Improvements\u003c/h3\u003e\n\u003cp\u003eMypy uses a cache by default to speed up incremental runs by reusing partial results\nfrom earlier runs. Mypy 1.18 added a new binary fixed-format cache representation as\nan experimental feature. The feature is no longer experimental, and we are planning\nto enable it by default in a future mypy release (possibly 1.20), since it's faster\nand uses less space than the original, JSON-based cache format. Use\n\u003ccode\u003e--fixed-format-cache\u003c/code\u003e to enable the fixed-format cache.\u003c/p\u003e\n\u003cp\u003eMypy now has an extra dependency on the \u003ccode\u003elibrt\u003c/code\u003e PyPI package, as it's needed for\ncache serialization and deserialization.\u003c/p\u003e\n\u003cp\u003eMypy ships with a tool to convert fixed-format cache files to the old JSON format.\nExample of how to use this:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e$ python -m mypy.exportjson .mypy_cache/.../my_module.data.ff\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0f068c9ec604daa09e69c92545b059f4b44f566e\"\u003e\u003ccode\u003e0f068c9\u003c/code\u003e\u003c/a\u003e Remove +dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6d5cf52e67da306b62455cdce4ce9a9ccec35d02\"\u003e\u003ccode\u003e6d5cf52\u003c/code\u003e\u003c/a\u003e Various updates to 1.19 changelog (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20304\"\u003e#20304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3c813083b27c87cf3a32e7422191b02bf59fab6e\"\u003e\u003ccode\u003e3c81308\u003c/code\u003e\u003c/a\u003e Add draft version of 1.19 release notes (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20296\"\u003e#20296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/1999a20e9898f673fa2f4c9a91790c075141ba71\"\u003e\u003ccode\u003e1999a20\u003c/code\u003e\u003c/a\u003e [mypyc] librt base64: use existing SIMD CPU dispatch by customizing build fla...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/1b94fbb9fbc581de7e057d71e9892e3acbf9a7d3\"\u003e\u003ccode\u003e1b94fbb\u003c/code\u003e\u003c/a\u003e [mypyc] Fix vtable pointer with inherited dunder new (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/13369cb25fe450f755f63e59156b86df84c08b3d\"\u003e\u003ccode\u003e13369cb\u003c/code\u003e\u003c/a\u003e [mypyc] Fix crash on super in generator (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20291\"\u003e#20291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a087a5894935cfdbc2eba27a6d04ebca38fd6659\"\u003e\u003ccode\u003ea087a58\u003c/code\u003e\u003c/a\u003e Update import map when new modules added (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20271\"\u003e#20271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/35e843cc38cedc1bdf87d9937c06d51189ad0e45\"\u003e\u003ccode\u003e35e843c\u003c/code\u003e\u003c/a\u003e [mypyc] Add efficient librt.base64.b64decode (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20263\"\u003e#20263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/094f66dc742cec2d69add9296fb21cdef50624d0\"\u003e\u003ccode\u003e094f66d\u003c/code\u003e\u003c/a\u003e [mypyc] Add \u003cstrong\u003erepr\u003c/strong\u003e to AssignmentTarget subclasses (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20258\"\u003e#20258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0738db3f9d336622923c7ee143e1c3adf7600a31\"\u003e\u003ccode\u003e0738db3\u003c/code\u003e\u003c/a\u003e Do not push partial types to the binder (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20202\"\u003e#20202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.0\"\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.3.0 to 4.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/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.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\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.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\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/1af6c8fa9502336c6977c2ff3e79185bd97a6e57\"\u003e\u003ccode\u003e1af6c8f\u003c/code\u003e\u003c/a\u003e v4.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/3358a3b54077cd8c8c99618aed003b771a21cb65\"\u003e\u003ccode\u003e3358a3b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e from pre-commit/hazmat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/bdf68790b78158268bbc8482f76491a61d75809a\"\u003e\u003ccode\u003ebdf6879\u003c/code\u003e\u003c/a\u003e add pre-commit hazmat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/e436690f140cbbe1d0f359654edf3ab9ecb8da2d\"\u003e\u003ccode\u003ee436690\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3584\"\u003e#3584\u003c/a\u003e from pre-commit/exitstack\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8d34f95308fc4c14dea3d3e90153acfdaf55e2de\"\u003e\u003ccode\u003e8d34f95\u003c/code\u003e\u003c/a\u003e use ExitStack instead of start + stop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/9c7ea88ab95cb063cb0f0b74f395ff7b9cdbe0c5\"\u003e\u003ccode\u003e9c7ea88\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3583\"\u003e#3583\u003c/a\u003e from pre-commit/forward-compat-map-manifest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/844dacc168d68a32553ecf8a99178ab395fdb11e\"\u003e\u003ccode\u003e844dacc\u003c/code\u003e\u003c/a\u003e add forward-compat error message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/6a1d543e523a02bbaad43da7df594cedff242abd\"\u003e\u003ccode\u003e6a1d543\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3582\"\u003e#3582\u003c/a\u003e from pre-commit/move-gc-back\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/66278a9a0b69a69fde820d2b85a7e198eae52981\"\u003e\u003ccode\u003e66278a9\u003c/code\u003e\u003c/a\u003e move logic for gc back to commands.gc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/1b32c50bc7e2f6b603b7ce26ecdf67c9c9dee3c6\"\u003e\u003ccode\u003e1b32c50\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3579\"\u003e#3579\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.13.3 to 0.14.7\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.14.7\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-11-28.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Handle string literal bindings in suspicious-url-open-usage (\u003ccode\u003eS310\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21469\"\u003e#21469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR1708\u003c/code\u003e false positives on nested functions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21177\"\u003e#21177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix suppression for empty dict without tuple key annotation (\u003ccode\u003ePLE1141\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21290\"\u003e#21290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add rule \u003ccode\u003eRUF066\u003c/code\u003e to detect unnecessary class properties (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21535\"\u003e#21535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Catch more dummy variable uses (\u003ccode\u003eRUF052\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19799\"\u003e#19799\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[server] Set severity for non-rule diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21559\"\u003e#21559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] Avoid invalid fix in (\u003ccode\u003eISC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21517\"\u003e#21517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eparser\u003c/code\u003e] Fix panic when parsing IPython escape command expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21480\"\u003e#21480\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow partial fixability indicator in statistics output (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21513\"\u003e#21513\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikeleppane\"\u003e\u003ccode\u003e@​mikeleppane\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/senekor\"\u003e\u003ccode\u003e@​senekor\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShaharNaveh\"\u003e\u003ccode\u003e@​ShaharNaveh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JumboBear\"\u003e\u003ccode\u003e@​JumboBear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prakhar1144\"\u003e\u003ccode\u003e@​prakhar1144\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tsvikas\"\u003e\u003ccode\u003e@​tsvikas\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.14.7\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.14.7/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://github.com/astral-sh/ruff/releases/download/0.14.7/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.7\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-11-28.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Handle string literal bindings in suspicious-url-open-usage (\u003ccode\u003eS310\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21469\"\u003e#21469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR1708\u003c/code\u003e false positives on nested functions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21177\"\u003e#21177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix suppression for empty dict without tuple key annotation (\u003ccode\u003ePLE1141\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21290\"\u003e#21290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add rule \u003ccode\u003eRUF066\u003c/code\u003e to detect unnecessary class properties (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21535\"\u003e#21535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Catch more dummy variable uses (\u003ccode\u003eRUF052\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19799\"\u003e#19799\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[server] Set severity for non-rule diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21559\"\u003e#21559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] Avoid invalid fix in (\u003ccode\u003eISC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21517\"\u003e#21517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eparser\u003c/code\u003e] Fix panic when parsing IPython escape command expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21480\"\u003e#21480\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow partial fixability indicator in statistics output (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21513\"\u003e#21513\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikeleppane\"\u003e\u003ccode\u003e@​mikeleppane\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/senekor\"\u003e\u003ccode\u003e@​senekor\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShaharNaveh\"\u003e\u003ccode\u003e@​ShaharNaveh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JumboBear\"\u003e\u003ccode\u003e@​JumboBear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prakhar1144\"\u003e\u003ccode\u003e@​prakhar1144\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tsvikas\"\u003e\u003ccode\u003e@​tsvikas\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-11-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Support new PySNMP API paths (\u003ccode\u003eS508\u003c/code\u003e, \u003ccode\u003eS509\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21374\"\u003e#21374\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdjust own-line comment placement between branches (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21185\"\u003e#21185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error when formatting attribute expressions with outer parentheses, parenthesized value, and trailing comment on value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20418\"\u003e#20418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic when formatting comments in unary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21501\"\u003e#21501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003efmt: skip\u003c/code\u003e for compound statements on a single line (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20633\"\u003e#20633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix \u003ccode\u003eFURB103\u003c/code\u003e autofix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21454\"\u003e#21454\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/ecab623fb2fe3846de4cafa0dfef0385a7245941\"\u003e\u003ccode\u003eecab623\u003c/code\u003e\u003c/a\u003e Bump 0.14.7 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21684\"\u003e#21684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42f152108aad444b7d65359aea931be4dd15dffd\"\u003e\u003ccode\u003e42f1521\u003c/code\u003e\u003c/a\u003e [ty] Generic types aliases (implicit and PEP 613) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21553\"\u003e#21553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/594b7b04d3b04bcf42861f86207017c8117678ca\"\u003e\u003ccode\u003e594b7b0\u003c/code\u003e\u003c/a\u003e [ty] Preserve quoting style when autofixing \u003ccode\u003eTypedDict\u003c/code\u003e keys (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21682\"\u003e#21682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b5b4917d7f4a324f5d32cc55dfb1d08e75cc9e6f\"\u003e\u003ccode\u003eb5b4917\u003c/code\u003e\u003c/a\u003e [ty] Fix override of final method summary (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21681\"\u003e#21681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0084e94f78742685ddacf2dab28530c2ece3393e\"\u003e\u003ccode\u003e0084e94\u003c/code\u003e\u003c/a\u003e [ty] Fix subtyping of \u003ccode\u003etype[Any]\u003c/code\u003e / \u003ccode\u003etype[T]\u003c/code\u003e and protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21678\"\u003e#21678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/566c959add8c5aa5d25fd14db513c792e4048b50\"\u003e\u003ccode\u003e566c959\u003c/code\u003e\u003c/a\u003e [ty] Rename \u003ccode\u003eReferenceRequestHandler\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21680\"\u003e#21680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8bcfc198b83051db0c8a3c7b8f0c8a8c339947c7\"\u003e\u003ccode\u003e8bcfc19\u003c/code\u003e\u003c/a\u003e [ty] Implement \u003ccode\u003etyping.final\u003c/code\u003e for methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21646\"\u003e#21646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c534bfaf01671b8020edd440bc7f4f22070af583\"\u003e\u003ccode\u003ec534bfa\u003c/code\u003e\u003c/a\u003e [ty] Implement patterns and typevars in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21671\"\u003e#21671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5e1b2eef5797b00de8329bf38ceacf5cacd00c87\"\u003e\u003ccode\u003e5e1b2ee\u003c/code\u003e\u003c/a\u003e [ty] implement rendering of \u003ccode\u003e.. code:: lang\u003c/code\u003e in docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21665\"\u003e#21665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/98681b9356bd0b8ef086cc54118b58de532c5310\"\u003e\u003ccode\u003e98681b9\u003c/code\u003e\u003c/a\u003e [ty] Add \u003ccode\u003edb\u003c/code\u003e parameter to \u003ccode\u003eParameters::new\u003c/code\u003e method (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21674\"\u003e#21674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.3...0.14.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.2 to 9.0.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\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\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/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.0\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.0 (2025-11-05)\u003c/h1\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/1367\"\u003e#1367\u003c/a\u003e: \u003cstrong\u003eSupport for subtests\u003c/strong\u003e has been added.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003esubtests \u0026lt;subtests\u0026gt;\u003c/code\u003e are an alternative to parametrization, useful in situations where the parametrization values are not all known at collection time.\u003c/p\u003e\n\u003cp\u003eExample:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003edef contains_docstring(p: Path) -\u0026gt; bool:\n    \u0026quot;\u0026quot;\u0026quot;Return True if the given Python file contains a top-level docstring.\u0026quot;\u0026quot;\u0026quot;\n    ...\n\u003cp\u003edef test_py_files_contain_docstring(subtests: pytest.Subtests) -\u0026gt; None:\u003cbr /\u003e\nfor path in Path.cwd().glob(\u0026quot;*.py\u0026quot;):\u003cbr /\u003e\nwith subtests.test(path=str(path)):\u003cbr /\u003e\nassert contains_docstring(path)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\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/pytest-dev/pytest/commit/d1b64aa60b9e1a0fcfaf03af7ebeb185f1024a87\"\u003e\u003ccode\u003ed1b64aa\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0a497c7b213ea950821319fd80dce219b0033f32\"\u003e\u003ccode\u003e0a497c7\u003c/code\u003e\u003c/a\u003e regendoc: remove CI environment variables (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13950\"\u003e#13950\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13951\"\u003e#13951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a9f7e6ed579b8844e302067b7f05122b82993355\"\u003e\u003ccode\u003ea9f7e6e\u003c/code\u003e\u003c/a\u003e 🧪 Run \u003ccode\u003egh release\u003c/code\u003e w/o Git in CI/CD (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13947\"\u003e#13947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2682a6607304f1f5bb5a2140340003cdf5121bc4\"\u003e\u003ccode\u003e2682a66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13944\"\u003e#13944\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/bef7d34f1...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a999997e36c53d189ecded3369bf35bfe2be96ad\"\u003e\u003ccode\u003ea999997\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13941\"\u003e#13941\u003c/a\u003e from nicoddemus/min-pre-commit-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/4bd63a0ead81d740aa767a4384d3b0b4c18f2ef2\"\u003e\u003ccode\u003e4bd63a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13935\"\u003e#13935\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/ce8b8a7b4...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/15f93b332c1c3ec9c200c0ad3d55af5a2158e0db\"\u003e\u003ccode\u003e15f93b3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e from webknjaz/maintenance/tox-pep517-env-setuptools...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0fa11ae3f79d06dc9e2f1f7c81ade4a1126d9ef3\"\u003e\u003ccode\u003e0fa11ae\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13927\"\u003e#13927\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/3d8075743...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/fa454700133c7b2cc960cba3b1cd09cc048c25a0\"\u003e\u003ccode\u003efa45470\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13926\"\u003e#13926\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d587e0cf8...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b4e3973505a2b7a2caa17ccc392d91a6ad73e122\"\u003e\u003ccode\u003eb4e3973\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13922\"\u003e#13922\u003c/a\u003e from bluetech/fix-argparse-userwarning\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `matplotlib` from 3.10.6 to 3.10.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/matplotlib/matplotlib/releases\"\u003ematplotlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eREL: v3.10.7\u003c/h2\u003e\n\u003cp\u003eThis is the latest bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eThe most important update in this release is that the minimum version\nof \u003ccode\u003epyparsing\u003c/code\u003e has been updated to version 3.0.\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/matplotlib/matplotlib/commit/4aeb773422464799998d900198b35cb80e94b3e1\"\u003e\u003ccode\u003e4aeb773\u003c/code\u003e\u003c/a\u003e REL: v3.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/080add32f6b3c82075ccfb1111b21d5ff9e9c075\"\u003e\u003ccode\u003e080add3\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.6-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/a604a8beed19bdda1355a29a12ab2904367cf140\"\u003e\u003ccode\u003ea604a8b\u003c/code\u003e\u003c/a\u003e Github Stats v3.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/f550261fadf30702a42bc85f71e3489a3c2f6b99\"\u003e\u003ccode\u003ef550261\u003c/code\u003e\u003c/a\u003e Zenodo v3.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/9a5e3e4253a3deaa5c83451b1208b5d46759ff7c\"\u003e\u003ccode\u003e9a5e3e4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30628\"\u003e#30628\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30626-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/eb8cb0ce31f6965713a5d46fe4fadf2dffb74773\"\u003e\u003ccode\u003eeb8cb0c\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30626\"\u003e#30626\u003c/a\u003e: MNT: Fix new F401 unused imports warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/8fadc71e0e372f05aa0305ef425c5152d70d6f39\"\u003e\u003ccode\u003e8fadc71\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/29745\"\u003e#29745\u003c/a\u003e: Use PEP8 style method and function names from (\u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30589\"\u003e#30589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/098876ee6f695f6c5297d4cf3f974c9d64ff4c79\"\u003e\u003ccode\u003e098876e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30614\"\u003e#30614\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30612-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/eb42d8637ba5891aa806fa6b0ed73835c16b2741\"\u003e\u003ccode\u003eeb42d86\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30612\"\u003e#30612\u003c/a\u003e: MNT: update black pin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/4a9c187a73fce92074b262612b3285dcff2d615e\"\u003e\u003ccode\u003e4a9c187\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30572\"\u003e#30572\u003c/a\u003e from QuLogic/auto-backport-of-pr-30571-on-v3.10.x\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.6...v3.10.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `deptry` from 0.23.1 to 0.24.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fpgmaas/deptry/releases\"\u003edeptry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003ch4\u003ePython 3.9 support dropped\u003c/h4\u003e\n\u003cp\u003eSupport for Python 3.9 has been dropped, as it has reached its end of life.\u003c/p\u003e\n\u003ch4\u003ePyPy 3.10 support dropped, 3.11 added\u003c/h4\u003e\n\u003cp\u003eSupport for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd GitHub Actions annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublish wheels for PyPy 3.11 and drop 3.10 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFull Changelog\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\"\u003ehttps://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fpgmaas/deptry/blob/main/CHANGELOG.md\"\u003edeptry's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.24.0 - 2025-11-09\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003ch4\u003ePython 3.9 support dropped\u003c/h4\u003e\n\u003cp\u003eSupport for Python 3.9 has been dropped, as it has reached its end of life.\u003c/p\u003e\n\u003ch4\u003ePyPy 3.10 support dropped, 3.11 added\u003c/h4\u003e\n\u003cp\u003eSupport for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd GitHub Actions annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublish wheels for PyPy 3.11 and drop 3.10 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFull Changelog\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\"\u003ehttps://github.com/fpgmaas/deptry/compare/0.23.1...0.24.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/fpgmaas/deptry/commit/4cc2d65ce1343957c911ca45709d6080cb9f82c3\"\u003e\u003ccode\u003e4cc2d65\u003c/code\u003e\u003c/a\u003e docs(changelog): add 0.24.0 release notes (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1330\"\u003e#1330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/8757b318e9974bbfa7ec65dabf999bc935ac026f\"\u003e\u003ccode\u003e8757b31\u003c/code\u003e\u003c/a\u003e chore: sync all dependency groups by default and run mypy locally (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1337\"\u003e#1337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/5ebc5c066831dd3dfeef7e79a4ae4f5934d744b9\"\u003e\u003ccode\u003e5ebc5c0\u003c/code\u003e\u003c/a\u003e feat: add github annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/aa59b6fa66bd3468ad681317de14189606a9c04e\"\u003e\u003ccode\u003eaa59b6f\u003c/code\u003e\u003c/a\u003e fix(deps): update ruff rust to v0.14.4 (patch) (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1335\"\u003e#1335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/87a6b87428641bc7cab3b22d00d788e28ed86ae9\"\u003e\u003ccode\u003e87a6b87\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1336\"\u003e#1336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/6b938ae73633b1a1f46e3888c9673b49d5e9dd60\"\u003e\u003ccode\u003e6b938ae\u003c/code\u003e\u003c/a\u003e chore(deps): update uv-version to v0.9.8 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1334\"\u003e#1334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/92c35bab5ad0a11d2becc31e4cdbe4413a746233\"\u003e\u003ccode\u003e92c35ba\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook woodruffw/zizmor-pre-commit to v1.16.3 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/a8be2902812426acaf00ff344dc93a48f30d48d7\"\u003e\u003ccode\u003ea8be290\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.4 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1332\"\u003e#1332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/6abefd1237071ba0e8d3fc1c9e02a402ccde11f6\"\u003e\u003ccode\u003e6abefd1\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency mkdocs-material to v9.6.23 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/6b556861d72024d1f8b5f8c8ead9d1b48cef0f9e\"\u003e\u003ccode\u003e6b55686\u003c/code\u003e\u003c/a\u003e test: update all test dependencies (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyarrow` from 21.0.0 to 22.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/arrow/releases\"\u003epyarrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Arrow 22.0.0\u003c/h2\u003e\n\u003cp\u003eRelease Notes URL: \u003ca href=\"https://arrow.apache.org/release/22.0.0.html\"\u003ehttps://arrow.apache.org/release/22.0.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eApache Arrow 22.0.0 RC1\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 22.0.0 RC1\u003c/p\u003e\n\u003ch2\u003eApache Arrow 22.0.0 RC0\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 22.0.0 RC0\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/apache/arrow/commit/5aeb5f217f1ba39c428c9b481f393bd37097f69e\"\u003e\u003ccode\u003e5aeb5f2\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update versions for 22.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/81563ad2c53f886a4901191e0f2d05238398e177\"\u003e\u003ccode\u003e81563ad\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update .deb/.rpm changelogs for 22.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/c5055366fb5d6ae6a7c51ae50135ebf3203b48af\"\u003e\u003ccode\u003ec505536\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update CHANGELOG.md for 22.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/e04fafb1242ce428b5068f075de58579992f8c5c\"\u003e\u003ccode\u003ee04fafb\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47838\"\u003eGH-47838\u003c/a\u003e: [C++][Parquet] Set Variant specification version to 1 to align with...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/07e4d5aeadf0c24542309edc3056ed26dfc5f49c\"\u003e\u003ccode\u003e07e4d5a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47819\"\u003eGH-47819\u003c/a\u003e: [CI][Packaging][Release] Avoid triggering Linux packages on release...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/e2fa94cf96c5b21924451ca52a6b522618c28a9e\"\u003e\u003ccode\u003ee2fa94c\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47809\"\u003eGH-47809\u003c/a\u003e: [CI][Release] Fix Windows verification job trying to install patch ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/2140934e4d79587ffa91e5d1462ac7ee673d2df0\"\u003e\u003ccode\u003e2140934\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47738\"\u003eGH-47738\u003c/a\u003e: [R] Update NEWS.md for 22.0.0 (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47739\"\u003e#47739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/08f5304074ce550c342f97e107081ea61a51e3da\"\u003e\u003ccode\u003e08f5304\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47803\"\u003eGH-47803\u003c/a\u003e: [C++][Parquet] Fix read out of bounds on invalid RLE data (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47804\"\u003e#47804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/d5b8e2b151730312ef80a975627ef7ff2423a232\"\u003e\u003ccode\u003ed5b8e2b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47438\"\u003eGH-47438\u003c/a\u003e: [Python][Packaging] Set up wheel building for Python 3.14 (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47616\"\u003e#47616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/618f6090118606f83a93cdd88e47868db9c61b8f\"\u003e\u003ccode\u003e618f609\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47795\"\u003eGH-47795\u003c/a\u003e: [Archery] Add support for custom Docker registry (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47796\"\u003e#47796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/arrow/compare/apache-arrow-21.0.0...apache-arrow-22.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.11.0 to 4.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for asyncio's \u003ca href=\"https://docs.python.org/3/library/asyncio-graph.html\"\u003etask call graphs\u003c/a\u003e on Python 3.14 and later when using AnyIO's task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded an asynchronous implementation of the \u003ccode\u003efunctools\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1001\"\u003e#1001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003euvloop=True\u003c/code\u003e on Windows via the \u003ca href=\"https://github.com/Vizonex/Winloop\"\u003ewinloop\u003c/a\u003e implementation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/960\"\u003e#960\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for use as a context manager to \u003ccode\u003eanyio.lowlevel.RunVar\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e__all__\u003c/code\u003e declarations to public submodules (\u003ccode\u003eanyio.lowlevel\u003c/code\u003e etc.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1009\"\u003e#1009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to set the token count of a \u003ccode\u003eCapacityLimiter\u003c/code\u003e to zero (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1019\"\u003e#1019\u003c/a\u003e; requires Python 3.10 or later when using Trio)\u003c/li\u003e\n\u003cli\u003eAdded parameters \u003ccode\u003ecase_sensitive\u003c/code\u003e and \u003ccode\u003erecurse_symlinks\u003c/code\u003e along with support for path-like objects to \u003ccode\u003eanyio.Path.glob()\u003c/code\u003e and \u003ccode\u003eanyio.Path.rglob()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1033\"\u003e#1033\u003c/a\u003e; PR by \u003ca href=\"https://github.com/northisup\"\u003e\u003ccode\u003e@​northisup\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped \u003ccode\u003esniffio\u003c/code\u003e as a direct dependency and added the \u003ccode\u003eget_available_backends()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not raising \u003ccode\u003eClosedResourceError\u003c/code\u003e and \u003ccode\u003eBrokenResourceError\u003c/code\u003e on asyncio. Previously, a non-AnyIO exception was raised in such cases (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not checkpointing before writing data on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1002\"\u003e#1002\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a race condition where cancelling a \u003ccode\u003eFuture\u003c/code\u003e from \u003ccode\u003eBlockingPortal.start_task_soon()\u003c/code\u003e would sometimes not cancel the async function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1011\"\u003e#1011\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the presence of the pytest plugin causing breakage with older versions of pytest (\u0026lt;= 6.1.2) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1028\"\u003e#1028\u003c/a\u003e; PR by \u003ca href=\"https://github.com/saper\"\u003e\u003ccode\u003e@​saper\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a rarely occurring \u003ccode\u003eRuntimeError: Set changed size during iteration\u003c/code\u003e while shutting down the process pool when using the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/bc021b634291223d6829c0a689152173443a8545\"\u003e\u003ccode\u003ebc021b6\u003c/code\u003e\u003c/a\u003e Fixed the download-artifact settings to retain the expected behavior\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/c6000aa2837f75733f3c09c454f5a31eb9f9f536\"\u003e\u003ccode\u003ec6000aa\u003c/code\u003e\u003c/a\u003e Corrected the format of the version in the changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9d1bfe0da4261bcef3c10cd31218237805a89937\"\u003e\u003ccode\u003e9d1bfe0\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/77f7ce25e12c9becf5081105a47b1914e50a3e0a\"\u003e\u003ccode\u003e77f7ce2\u003c/code\u003e\u003c/a\u003e Fixed RuntimeError while shutting down the asyncio process pool (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1039\"\u003e#1039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/aecc666e6b3b40f977ee715d141bdd89711b45cb\"\u003e\u003ccode\u003eaecc666\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1036\"\u003e#1036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e5569adf98394dfabebccf215a04d05d7819b506\"\u003e\u003ccode\u003ee5569ad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/dde3ab8583cb194e663f6fb87703a4a79e2701eb\"\u003e\u003ccode\u003edde3ab8\u003c/code\u003e\u003c/a\u003e Moved a changelog entry to its correct position\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/250d4f183245bf7ee5ead0ff39d521cda2b8d617\"\u003e\u003ccode\u003e250d4f1\u003c/code\u003e\u003c/a\u003e Restore compatibility with pytest\u0026lt;=6.1.2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1030\"\u003e#1030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/3708e227838e2f51464900cf806b25c30ca458a7\"\u003e\u003ccode\u003e3708e22\u003c/code\u003e\u003c/a\u003e Fixed a typo in the documentation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1035\"\u003e#1035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9adbe08c55e725b0388dcc4ab7556875da881a4c\"\u003e\u003ccode\u003e9adbe08\u003c/code\u003e\u003c/a\u003e Add new params to Path.glob \u0026amp; Path.rglob introduced since 3.12 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1034\"\u003e#1034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.11.0...4.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `arrow` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/arrow-py/arrow/releases\"\u003earrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.4.0\u003c/h2\u003e\n\u003ch2\u003eADDED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eweek_start\u003c/code\u003e parameter to \u003ccode\u003efloor()\u003c/code\u003e and \u003ccode\u003eceil()\u003c/code\u003e methods. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1222\"\u003e#1222\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1222\"\u003earrow-py/arrow#1222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eFORMAT_RFC3339_STRICT\u003c/code\u003e with a T separator. [PR \u003ca href=\"https://redirect.github.c...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-pre-system/pull/111","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-pre-system/issues/111","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/111/packages"},{"uuid":"3679686363","node_id":"PR_kwDOQDraYs62RtGJ","number":7,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 30 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-12-08T06:33:44.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-01T07:40:02.000Z","updated_at":"2025-12-08T06:33:46.000Z","time_to_close":600822,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":30,"packages":[{"name":"django","old_version":"4.2.24","new_version":"5.2.8","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"boto3","old_version":"1.40.27","new_version":"1.42.0","repository_url":"https://github.com/boto/boto3"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"38.2.0","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.0.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.3","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.148.5","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 30 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `5.2.8` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.42.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.12.0` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `38.2.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.0` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.0.0` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.3` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.148.5` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 5.2.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47fe39af56ecd0ad73b9c7562511015e96b91b80\"\u003e\u003ccode\u003e47fe39a\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.8 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac9fcf6eb2c909f4150c5287808f49170ce1f9e2\"\u003e\u003ccode\u003eac9fcf6\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-64459 -- Avoided propagating invalid arguments to Q on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6703f364d767e949c5b0e4016433ef75063b4f9b\"\u003e\u003ccode\u003e6703f36\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64459 -- Prevented SQL injections in Q/QuerySet via th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f5d904b63751dea9ffc3b0e046404a7fa5881ac\"\u003e\u003ccode\u003e4f5d904\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedire...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/cbdf128cb316bccf9ca3b3b4966e57bd050bfc8a\"\u003e\u003ccode\u003ecbdf128\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36704\"\u003e#36704\u003c/a\u003e -- Fixed system check error for proxy model with a compo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6775888470317a6d69121779b489bb2dc7350318\"\u003e\u003ccode\u003e6775888\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36696\"\u003e#36696\u003c/a\u003e -- Fixed NameError when inspecting functions with deferr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d5dfffaae52b9dcb4857d42b1e2902290a5c5e3c\"\u003e\u003ccode\u003ed5dfffa\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.8, 5.1.14, and 4.2.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/368f955c371cab5db18e9e239d10560cf15f5ea4\"\u003e\u003ccode\u003e368f955\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36681\"\u003e#36681\u003c/a\u003e -- Removed English pluralization bias from example in do...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/71267c97db211f1d7f1b8b794ceb2167a7619a4d\"\u003e\u003ccode\u003e71267c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35095\"\u003e#35095\u003c/a\u003e -- Clarified Swiss number formatting in docs/topics/i18n...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9b37bd5fe73b0d614ad8e503071d6f7bf2bdf6b2\"\u003e\u003ccode\u003e9b37bd5\u003c/code\u003e\u003c/a\u003e [5.2.x] Made RemoteTestResultTest.test_pickle_errors_detection() compatible w...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...5.2.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on 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/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.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 `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 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/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove initial Release Drafter config (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c0b74ed58f933bffd160c60a58620f672710ff7c\"\u003ec0b74ed\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/martinblech/xmltodict/commit/d079849136b031c471ec96a168ad7859ed5994ff\"\u003e\u003ccode\u003ed079849\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e\u003ccode\u003e25b61a4\u003c/code\u003e\u003c/a\u003e fix: allow DOCTYPE with disable_entities=True (default)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a2a9ab7e0692a62f64d97ff12553d0d53368c854\"\u003e\u003ccode\u003ea2a9ab7\u003c/code\u003e\u003c/a\u003e ci(publish): allow uploading release assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/656e6af9543e640fda7e96d6bdd6e693756687be\"\u003e\u003ccode\u003e656e6af\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003e\u003ccode\u003ec986d2d\u003c/code\u003e\u003c/a\u003e fix: fail closed when entities disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e\u003ccode\u003e3d4d2d3\u003c/code\u003e\u003c/a\u003e fix: validate XML comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b4a5f2a3f04aff68384486e957632c8438396fd6\"\u003e\u003ccode\u003eb4a5f2a\u003c/code\u003e\u003c/a\u003e refactor: remove jython-specific parsing branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e\u003ccode\u003e6b464fc\u003c/code\u003e\u003c/a\u003e docs: clarify process_comments docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/34daa304d443e49113d195294d99c6f58ce4714c\"\u003e\u003ccode\u003e34daa30\u003c/code\u003e\u003c/a\u003e refactor: remove unused helper functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e\u003ccode\u003e2025b5c\u003c/code\u003e\u003c/a\u003e docs: clarify behavior for empty lists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003c...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"},{"uuid":"3662533526","node_id":"PR_kwDOPF_5m861Y_wt","number":76,"state":"open","title":"chore(python)(deps): bump the python-dependencies group across 1 directory with 73 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-25T10:52:15.000Z","updated_at":"2025-11-25T13:02:22.164Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(python)(deps): bump","group_name":"python-dependencies","update_count":73,"packages":[{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"attrs","old_version":"25.3.0","new_version":"25.4.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"bleach","old_version":"6.2.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"blinker","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/pallets-eco/blinker"},{"name":"build","old_version":"1.2.2.post1","new_version":"1.3.0","repository_url":"https://github.com/pypa/build"},{"name":"cachecontrol","old_version":"0.14.3","new_version":"0.14.4","repository_url":"https://github.com/psf/cachecontrol"},{"name":"cachetools","old_version":"6.2.0","new_version":"6.2.2","repository_url":"https://github.com/tkem/cachetools"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"cli-helpers","old_version":"2.3.1","new_version":"2.7.0","repository_url":"https://github.com/dbcli/cli_helpers"},{"name":"click","old_version":"8.1.7","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"contourpy","old_version":"1.3.2","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"coverage","old_version":"7.3.4","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"deprecated","old_version":"1.2.18","new_version":"1.3.1","repository_url":"https://github.com/laurent-laporte-pro/deprecated"},{"name":"docutils","old_version":"0.18.1","new_version":"0.22.3","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"fastapi","old_version":"0.121.2","new_version":"0.122.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"flask","old_version":"3.0.3","new_version":"3.1.2","repository_url":"https://github.com/pallets/flask"},{"name":"freezegun","old_version":"1.3.1","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"fsspec","old_version":"2025.9.0","new_version":"2025.10.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"google-auth","old_version":"2.41.1","new_version":"2.43.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-auth-oauthlib","old_version":"1.2.2","new_version":"1.2.3","repository_url":"https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib"},{"name":"grpcio","old_version":"1.75.1","new_version":"1.76.0","repository_url":"https://github.com/grpc/grpc"},{"name":"h5py","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/h5py/h5py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"ipython","old_version":"9.6.0","new_version":"9.7.0","repository_url":"https://github.com/ipython/ipython"},{"name":"ipywidgets","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"jiter","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jupyter","old_version":"1.0.0","new_version":"1.1.1"},{"name":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"jupyterlab-widgets","old_version":"3.0.15","new_version":"3.0.16","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"lark","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"libcst","old_version":"1.7.0","new_version":"1.8.6","repository_url":"https://github.com/Instagram/LibCST"},{"name":"litecli","old_version":"1.12.3","new_version":"1.17.0","repository_url":"https://github.com/dbcli/litecli"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"ml-dtypes","old_version":"0.5.3","new_version":"0.5.4","repository_url":"https://github.com/jax-ml/ml_dtypes"},{"name":"mutmut","old_version":"3.3.1","new_version":"3.4.0","repository_url":"https://github.com/boxed/mutmut"},{"name":"mypy","old_version":"1.5.1","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"networkx","old_version":"3.5","new_version":"3.6","repository_url":"https://github.com/networkx/networkx"},{"name":"numpy","old_version":"2.0.2","new_version":"2.3.5","repository_url":"https://github.com/numpy/numpy"},{"name":"objection","old_version":"1.11.0","new_version":"1.12.2","repository_url":"https://github.com/sensepost/objection"},{"name":"openai","old_version":"2.8.0","new_version":"2.8.1","repository_url":"https://github.com/openai/openai-python"},{"name":"optree","old_version":"0.17.0","new_version":"0.18.0","repository_url":"https://github.com/metaopt/optree"},{"name":"packageurl-python","old_version":"0.17.5","new_version":"0.17.6","repository_url":"https://github.com/package-url/packageurl-python"},{"name":"pep517","old_version":"0.13.0","new_version":"0.13.1","repository_url":"https://github.com/pypa/pep517"},{"name":"pexpect","old_version":"4.8.0","new_version":"4.9.0","repository_url":"https://github.com/pexpect/pexpect"},{"name":"prompt-toolkit","old_version":"3.0.48","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"psutil","old_version":"7.1.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycodestyle","old_version":"2.10.0","new_version":"2.14.0","repository_url":"https://github.com/PyCQA/pycodestyle"},{"name":"pyflakes","old_version":"3.0.1","new_version":"3.4.0","repository_url":"https://github.com/PyCQA/pyflakes"},{"name":"pyparsing","old_version":"3.0.9","new_version":"3.2.5","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytest-mock","old_version":"3.12.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.2.0","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"rpds-py","old_version":"0.27.1","new_version":"0.29.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"scipy","old_version":"1.15.3","new_version":"1.16.3","repository_url":"https://github.com/scipy/scipy"},{"name":"seaborn","old_version":"0.12.2","new_version":"0.13.2","repository_url":"https://github.com/mwaskom/seaborn"},{"name":"sqlparse","old_version":"0.5.1","new_version":"0.5.3","repository_url":"https://github.com/andialbrecht/sqlparse"},{"name":"starlette","old_version":"0.49.3","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.2.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"textual","old_version":"6.2.1","new_version":"6.6.0","repository_url":"https://github.com/Textualize/textual"},{"name":"tinycss2","old_version":"1.4.0","new_version":"1.5.1","repository_url":"https://github.com/Kozea/tinycss2"},{"name":"types-requests","old_version":"2.31.0.2","new_version":"2.32.4.20250913","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.2.14","repository_url":"https://github.com/jquast/wcwidth"},{"name":"websocket-client","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/websocket-client/websocket-client"},{"name":"werkzeug","old_version":"3.1.1","new_version":"3.1.3","repository_url":"https://github.com/pallets/werkzeug"},{"name":"widgetsnbextension","old_version":"4.0.14","new_version":"4.0.15"},{"name":"celery","old_version":"5.4.0","new_version":"5.5.3","repository_url":"https://github.com/celery/celery"},{"name":"celery","old_version":"5.4.0","new_version":"5.5.3","repository_url":"https://github.com/celery/celery"},{"name":"kombu","old_version":"5.4.2","new_version":"5.6.0","repository_url":"https://github.com/celery/kombu"},{"name":"amqp","old_version":"5.2.0","new_version":"5.3.1","repository_url":"https://github.com/celery/py-amqp"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 73 updates in the /python-ai-service directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `25.3.0` | `25.4.0` |\n| [bleach](https://github.com/mozilla/bleach) | `6.2.0` | `6.3.0` |\n| [blinker](https://github.com/pallets-eco/blinker) | `1.8.2` | `1.9.0` |\n| [build](https://github.com/pypa/build) | `1.2.2.post1` | `1.3.0` |\n| [cachecontrol](https://github.com/psf/cachecontrol) | `0.14.3` | `0.14.4` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.0` | `6.2.2` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.4.4` |\n| [cli-helpers](https://github.com/dbcli/cli_helpers) | `2.3.1` | `2.7.0` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.1` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.3.4` | `7.12.0` |\n| [deprecated](https://github.com/laurent-laporte-pro/deprecated) | `1.2.18` | `1.3.1` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.18.1` | `0.22.3` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.121.2` | `0.122.0` |\n| [flask](https://github.com/pallets/flask) | `3.0.3` | `3.1.2` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.3.1` | `1.5.5` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.9.0` | `2025.10.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.41.1` | `2.43.0` |\n| [google-auth-oauthlib](https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib) | `1.2.2` | `1.2.3` |\n| [grpcio](https://github.com/grpc/grpc) | `1.75.1` | `1.76.0` |\n| [h5py](https://github.com/h5py/h5py) | `3.14.0` | `3.15.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [ipython](https://github.com/ipython/ipython) | `9.6.0` | `9.7.0` |\n| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.7` | `8.1.8` |\n| [jiter](https://github.com/pydantic/jiter) | `0.11.0` | `0.12.0` |\n| [jupyter](https://jupyter.org) | `1.0.0` | `1.1.1` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [jupyterlab-widgets](https://github.com/jupyter-widgets/ipywidgets) | `3.0.15` | `3.0.16` |\n| [lark](https://github.com/lark-parser/lark) | `1.3.0` | `1.3.1` |\n| [libcst](https://github.com/Instagram/LibCST) | `1.7.0` | `1.8.6` |\n| [litecli](https://github.com/dbcli/litecli) | `1.12.3` | `1.17.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [ml-dtypes](https://github.com/jax-ml/ml_dtypes) | `0.5.3` | `0.5.4` |\n| [mutmut](https://github.com/boxed/mutmut) | `3.3.1` | `3.4.0` |\n| [mypy](https://github.com/python/mypy) | `1.5.1` | `1.18.2` |\n| [networkx](https://github.com/networkx/networkx) | `3.5` | `3.6` |\n| [numpy](https://github.com/numpy/numpy) | `2.0.2` | `2.3.5` |\n| [objection](https://github.com/sensepost/objection) | `1.11.0` | `1.12.2` |\n| [openai](https://github.com/openai/openai-python) | `2.8.0` | `2.8.1` |\n| [optree](https://github.com/metaopt/optree) | `0.17.0` | `0.18.0` |\n| [packageurl-python](https://github.com/package-url/packageurl-python) | `0.17.5` | `0.17.6` |\n| [pep517](https://github.com/pypa/pep517) | `0.13.0` | `0.13.1` |\n| [pexpect](https://github.com/pexpect/pexpect) | `4.8.0` | `4.9.0` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.48` | `3.0.52` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.0` | `7.1.3` |\n| [pycodestyle](https://github.com/PyCQA/pycodestyle) | `2.10.0` | `2.14.0` |\n| [pyflakes](https://github.com/PyCQA/pyflakes) | `3.0.1` | `3.4.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.0.9` | `3.2.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.12.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.2.0` | `2.4.0` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.1` | `0.29.0` |\n| [scipy](https://github.com/scipy/scipy) | `1.15.3` | `1.16.3` |\n| [seaborn](https://github.com/mwaskom/seaborn) | `0.12.2` | `0.13.2` |\n| [sqlparse](https://github.com/andialbrecht/sqlparse) | `0.5.1` | `0.5.3` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.3` | `0.50.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.2.0` |\n| [textual](https://github.com/Textualize/textual) | `6.2.1` | `6.6.0` |\n| [tinycss2](https://github.com/Kozea/tinycss2) | `1.4.0` | `1.5.1` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.31.0.2` | `2.32.4.20250913` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n| [websocket-client](https://github.com/websocket-client/websocket-client) | `1.8.0` | `1.9.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.1` | `3.1.3` |\n| [widgetsnbextension](http://jupyter.org) | `4.0.14` | `4.0.15` |\n| [celery](https://github.com/celery/celery) | `5.4.0` | `5.5.3` |\n| [celery[redis]](https://github.com/celery/celery) | `5.4.0` | `5.5.3` |\n| [kombu](https://github.com/celery/kombu) | `5.4.2` | `5.6.0` |\n| [amqp](https://github.com/celery/py-amqp) | `5.2.0` | `5.3.1` |\n\n\nUpdates `arrow` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/arrow-py/arrow/releases\"\u003earrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.4.0\u003c/h2\u003e\n\u003ch2\u003eADDED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eweek_start\u003c/code\u003e parameter to \u003ccode\u003efloor()\u003c/code\u003e and \u003ccode\u003eceil()\u003c/code\u003e methods. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1222\"\u003e#1222\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1222\"\u003earrow-py/arrow#1222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eFORMAT_RFC3339_STRICT\u003c/code\u003e with a T separator. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1201\"\u003e#1201\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1201\"\u003earrow-py/arrow#1201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Macedonian in Latin locale support. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1200\"\u003e#1200\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1200\"\u003earrow-py/arrow#1200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Persian/Farsi locale support. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1190\"\u003e#1190\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1190\"\u003earrow-py/arrow#1190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded week and weeks to Thai locale timeframes. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1218\"\u003e#1218\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1218\"\u003earrow-py/arrow#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded weeks to Catalan locale. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1189\"\u003e#1189\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1189\"\u003earrow-py/arrow#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Persian names of months, month-abbreviations and day-abbreviations in Gregorian calendar. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1172\"\u003e#1172\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1172\"\u003earrow-py/arrow#1172\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCHANGED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated Arrow to use ZoneInfo for timezones instead of pytz. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1217\"\u003e#1217\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1217\"\u003earrow-py/arrow#1217\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFIXED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed humanize month limits. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1224\"\u003e#1224\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1224\"\u003earrow-py/arrow#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed type hint of \u003ccode\u003eArrow.__getattr__\u003c/code\u003e. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1171\"\u003e#1171\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1171\"\u003earrow-py/arrow#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed spelling and removed poorly used expressions in Korean locale. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1181\"\u003e#1181\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1181\"\u003earrow-py/arrow#1181\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eshift()\u003c/code\u003e method for issue \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1145\"\u003e#1145\u003c/a\u003e. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1194\"\u003e#1194\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1194\"\u003earrow-py/arrow#1194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved Greek locale translations (seconds, days, \u0026quot;ago\u0026quot;, and month typo). [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1184\"\u003e#1184\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1184\"\u003earrow-py/arrow#1184\u003c/a\u003e), [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1186\"\u003e#1186\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1186\"\u003earrow-py/arrow#1186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAddressed \u003ccode\u003edatetime.utcnow\u003c/code\u003e deprecation warning. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1182\"\u003e#1182\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1182\"\u003earrow-py/arrow#1182\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eINTERNAL\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded codecov test results. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1223\"\u003e#1223\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1223\"\u003earrow-py/arrow#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated CI dependencies (actions/setup-python, actions/checkout, codecov/codecov-action, actions/cache).\u003c/li\u003e\n\u003cli\u003eAdded docstrings to parser.py. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1010\"\u003e#1010\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1010\"\u003earrow-py/arrow#1010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated Python versions support and bumped CI dependencies. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1177\"\u003e#1177\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1177\"\u003earrow-py/arrow#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded dependabot for GitHub actions. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1193\"\u003e#1193\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1193\"\u003earrow-py/arrow#1193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMoved dateutil types to test requirements. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1183\"\u003e#1183\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1183\"\u003earrow-py/arrow#1183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded documentation link for \u003ccode\u003earrow.format\u003c/code\u003e. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1180\"\u003e#1180\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1180\"\u003earrow-py/arrow#1180\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/arrow-py/arrow/blob/master/CHANGELOG.rst\"\u003earrow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0 (2025-10-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[ADDED] Added \u003ccode\u003eweek_start\u003c/code\u003e parameter to \u003ccode\u003efloor()\u003c/code\u003e and \u003ccode\u003eceil()\u003c/code\u003e methods. \u003ccode\u003ePR [#1222](https://github.com/arrow-py/arrow/issues/1222) \u0026lt;https://github.com/arrow-py/arrow/pull/1222\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added \u003ccode\u003eFORMAT_RFC3339_STRICT\u003c/code\u003e with a T separator. \u003ccode\u003ePR [#1201](https://github.com/arrow-py/arrow/issues/1201) \u0026lt;https://github.com/arrow-py/arrow/pull/1201\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added Macedonian in Latin locale support. \u003ccode\u003ePR [#1200](https://github.com/arrow-py/arrow/issues/1200) \u0026lt;https://github.com/arrow-py/arrow/pull/1200\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added Persian/Farsi locale support. \u003ccode\u003ePR [#1190](https://github.com/arrow-py/arrow/issues/1190) \u0026lt;https://github.com/arrow-py/arrow/pull/1190\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added week and weeks to Thai locale timeframes. \u003ccode\u003ePR [#1218](https://github.com/arrow-py/arrow/issues/1218) \u0026lt;https://github.com/arrow-py/arrow/pull/1218\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added weeks to Catalan locale. \u003ccode\u003ePR [#1189](https://github.com/arrow-py/arrow/issues/1189) \u0026lt;https://github.com/arrow-py/arrow/pull/1189\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added Persian names of months, month-abbreviations and day-abbreviations in Gregorian calendar. \u003ccode\u003ePR [#1172](https://github.com/arrow-py/arrow/issues/1172) \u0026lt;https://github.com/arrow-py/arrow/pull/1172\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[CHANGED] Migrated Arrow to use ZoneInfo for timezones instead of pytz. \u003ccode\u003ePR [#1217](https://github.com/arrow-py/arrow/issues/1217) \u0026lt;https://github.com/arrow-py/arrow/pull/1217\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Fixed humanize month limits. \u003ccode\u003ePR [#1224](https://github.com/arrow-py/arrow/issues/1224) \u0026lt;https://github.com/arrow-py/arrow/pull/1224\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Fixed type hint of \u003ccode\u003eArrow.__getattr__\u003c/code\u003e. \u003ccode\u003ePR [#1171](https://github.com/arrow-py/arrow/issues/1171) \u0026lt;https://github.com/arrow-py/arrow/pull/1171\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Fixed spelling and removed poorly used expressions in Korean locale. \u003ccode\u003ePR [#1181](https://github.com/arrow-py/arrow/issues/1181) \u0026lt;https://github.com/arrow-py/arrow/pull/1181\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Updated \u003ccode\u003eshift()\u003c/code\u003e method for issue \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1145\"\u003e#1145\u003c/a\u003e. \u003ccode\u003ePR [#1194](https://github.com/arrow-py/arrow/issues/1194) \u0026lt;https://github.com/arrow-py/arrow/pull/1194\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Improved Greek locale translations (seconds, days, \u0026quot;ago\u0026quot;, and month typo). \u003ccode\u003ePR [#1184](https://github.com/arrow-py/arrow/issues/1184) \u0026lt;https://github.com/arrow-py/arrow/pull/1184\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003ePR [#1186](https://github.com/arrow-py/arrow/issues/1186) \u0026lt;https://github.com/arrow-py/arrow/pull/1186\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e[FIXED] Addressed \u003ccode\u003edatetime.utcnow\u003c/code\u003e deprecation warning. \u003ccode\u003ePR [#1182](https://github.com/arrow-py/arrow/issues/1182) \u0026lt;https://github.com/arrow-py/arrow/pull/1182\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added codecov test results. \u003ccode\u003ePR [#1223](https://github.com/arrow-py/arrow/issues/1223) \u0026lt;https://github.com/arrow-py/arrow/pull/1223\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Updated CI dependencies (actions/setup-python, actions/checkout, codecov/codecov-action, actions/cache).\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added docstrings to parser.py. \u003ccode\u003ePR [#1010](https://github.com/arrow-py/arrow/issues/1010) \u0026lt;https://github.com/arrow-py/arrow/pull/1010\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Updated Python versions support and bumped CI dependencies. \u003ccode\u003ePR [#1177](https://github.com/arrow-py/arrow/issues/1177) \u0026lt;https://github.com/arrow-py/arrow/pull/1177\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added dependabot for GitHub actions. \u003ccode\u003ePR [#1193](https://github.com/arrow-py/arrow/issues/1193) \u0026lt;https://github.com/arrow-py/arrow/pull/1193\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Moved dateutil types to test requirements. \u003ccode\u003ePR [#1183](https://github.com/arrow-py/arrow/issues/1183) \u0026lt;https://github.com/arrow-py/arrow/pull/1183\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added documentation link for \u003ccode\u003earrow.format\u003c/code\u003e. \u003ccode\u003ePR [#1180](https://github.com/arrow-py/arrow/issues/1180) \u0026lt;https://github.com/arrow-py/arrow/pull/1180\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/arrow-py/arrow/commit/2c1f5185ad66bf3b1cf8c0812f4b4fe65ac46656\"\u003e\u003ccode\u003e2c1f518\u003c/code\u003e\u003c/a\u003e Bump release CI flow to use Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/2483bfea4ec8a4da609036aba3ce1b32cb571875\"\u003e\u003ccode\u003e2483bfe\u003c/code\u003e\u003c/a\u003e Bump changelog date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/c61de9299733da6d4a7e8badabae43684a3f9da2\"\u003e\u003ccode\u003ec61de92\u003c/code\u003e\u003c/a\u003e Bump version and add changelog (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1228\"\u003e#1228\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/c3bb589536b283e3e3886d1d6bc01a6374c8e656\"\u003e\u003ccode\u003ec3bb589\u003c/code\u003e\u003c/a\u003e Update pypy CI version and update pre-commit dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/85cd905332d108303da1cbd0f2336fcae058147f\"\u003e\u003ccode\u003e85cd905\u003c/code\u003e\u003c/a\u003e Run tests on next Python release (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/4c8c44aefc0e5504b9c3cbf0d6adbb0ec4aa4571\"\u003e\u003ccode\u003e4c8c44a\u003c/code\u003e\u003c/a\u003e Add week_start parameter to floor() and ceil() (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1222\"\u003e#1222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/7ccbe66122ca53d90acf9c69c37aa95c81a1fe89\"\u003e\u003ccode\u003e7ccbe66\u003c/code\u003e\u003c/a\u003e add codecov test results (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1223\"\u003e#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/05cd9b47d0db1c22b44cb739832f1b9701855313\"\u003e\u003ccode\u003e05cd9b4\u003c/code\u003e\u003c/a\u003e fix humanize month limits (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/ea756ea779468b0c6a9f45439dc05cfd5e71ee1e\"\u003e\u003ccode\u003eea756ea\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1220\"\u003e#1220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/86f7520f15b2dd46f9c49f71ce5c15bbc537ed67\"\u003e\u003ccode\u003e86f7520\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1219\"\u003e#1219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/arrow-py/arrow/compare/1.3.0...1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asttokens` from 3.0.0 to 3.0.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/bdbf396fc0e006912ba82f1137dfd6b2d5aa9af2\"\u003e\u003ccode\u003ebdbf396\u003c/code\u003e\u003c/a\u003e Update mypy; add 3.14 to the CI; drop python 3.8 support (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/167\"\u003e#167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/f859c055e8453650e1987c5aefaaec36582d3a07\"\u003e\u003ccode\u003ef859c05\u003c/code\u003e\u003c/a\u003e Add tests for astroid v2, v3, and v4 to the CI (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/166\"\u003e#166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/84ef059ba28d08816d3d881e363b9ed42bbeae3a\"\u003e\u003ccode\u003e84ef059\u003c/code\u003e\u003c/a\u003e Adapt asttokens for astroid 4.x (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/165\"\u003e#165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9db9335648659520c7c8453bc39550fa4f95d539\"\u003e\u003ccode\u003e9db9335\u003c/code\u003e\u003c/a\u003e Various links improvements (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/163\"\u003e#163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3371ebf7f48f6a731d409fffd6ba235e6a95d85b\"\u003e\u003ccode\u003e3371ebf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/161\"\u003e#161\u003c/a\u003e from gristlabs/dependabot/pip/docs/requests-2.32.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3a60115d3efdb01efc8a6442b59fdd0071518e70\"\u003e\u003ccode\u003e3a60115\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.2 to 2.32.4 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/584b51c6c084455ad4597886657783d1b661ddfa\"\u003e\u003ccode\u003e584b51c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/160\"\u003e#160\u003c/a\u003e from gristlabs/dependabot/pip/docs/urllib3-2.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3e9d703323ce94987bf9e030bd010eae13fa15b4\"\u003e\u003ccode\u003e3e9d703\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.2.2 to 2.5.0 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/64d3f7c3637775fef832a9a9cdb78ec02da494e6\"\u003e\u003ccode\u003e64d3f7c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/158\"\u003e#158\u003c/a\u003e from gristlabs/dependabot/pip/docs/jinja2-3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9b5fb1abfb171cfb1f01c2d996cbd31e9d1f0660\"\u003e\u003ccode\u003e9b5fb1a\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.4 to 3.1.6 in /docs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gristlabs/asttokens/compare/v3.0.0...v3.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 25.3.0 to 25.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bleach` from 6.2.0 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mozilla/bleach/blob/main/CHANGES\"\u003ebleach's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.3.0 (October 27th, 2025)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix wbr handling. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/5546d5dbce60d08ccb99d981778d74044d646d4e\"\u003e\u003ccode\u003e5546d5d\u003c/code\u003e\u003c/a\u003e chore: prep for 6.3.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/88df3ff23fb2a43e174b3fdfe9191ef516de868a\"\u003e\u003ccode\u003e88df3ff\u003c/code\u003e\u003c/a\u003e chore: fix readthedocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d8b2fb45b2606515c58787c223d6605c6c70868f\"\u003e\u003ccode\u003ed8b2fb4\u003c/code\u003e\u003c/a\u003e fix: fix wbr handling (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/55e48cedb20bda23940ab34753a1fb378d5d30b9\"\u003e\u003ccode\u003e55e48ce\u003c/code\u003e\u003c/a\u003e chore: add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/a4d6cddac6e338c3d6f84c755a5fcb32e9e18fba\"\u003e\u003ccode\u003ea4d6cdd\u003c/code\u003e\u003c/a\u003e chore: drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/172d92faef543a83c6760c63c32749586cdd564b\"\u003e\u003ccode\u003e172d92f\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/df88612f2e9daf8f4ee23cf0e29b712d9d9147b6\"\u003e\u003ccode\u003edf88612\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/cbcf6b18d19aeb7777699f9385013d0a04052b68\"\u003e\u003ccode\u003ecbcf6b1\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.2.3 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d9aa7ef592d57dda56e26ba31d06e1b279c58eca\"\u003e\u003ccode\u003ed9aa7ef\u003c/code\u003e\u003c/a\u003e Switch from dependabot reviewers to CODEOWNERS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/06f0f76cc68112bda3fa101d1730d5ba914d54a1\"\u003e\u003ccode\u003e06f0f76\u003c/code\u003e\u003c/a\u003e Update setuptools, wheel, and twine for devs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mozilla/bleach/compare/v6.2.0...v6.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `blinker` from 1.8.2 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/blinker/releases\"\u003eblinker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.9.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.9.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.9.0/\"\u003ehttps://pypi.org/project/blinker/1.9.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/stable/#version-1-9-0\"\u003ehttps://blinker.readthedocs.io/en/stable/#version-1-9-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/blinker/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/blinker/milestone/1?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e, \u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/173\"\u003e#173\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-eco/blinker/blob/main/CHANGES.rst\"\u003eblinker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e175\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e,\n\u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. :pr:\u003ccode\u003e172\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down.\n:issue:\u003ccode\u003e173\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/669f3a027828d19786e708b511277fabcd6b9532\"\u003e\u003ccode\u003e669f3a0\u003c/code\u003e\u003c/a\u003e release version 1.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/cfe116fa7912d8dcb0deee4907aa63d1efaadf5b\"\u003e\u003ccode\u003ecfe116f\u003c/code\u003e\u003c/a\u003e try disabling attestions on test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/16e4bd70a19353d9d7cf47e4df7de54936296377\"\u003e\u003ccode\u003e16e4bd7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/174\"\u003e#174\u003c/a\u003e from projectgus/bugfix/weakref_disconnect_shutdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/42561fdf065032f5c39aea04d8c3fb4db93f73f3\"\u003e\u003ccode\u003e42561fd\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;Exception ignored\u0026quot; in weakref callback during interpreter shutdown.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/dcce3e97743494433025e0b68f742f3582b6ba6a\"\u003e\u003ccode\u003edcce3e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e from pallets-eco/drop-python3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/efa95eaa080b0d4a8dcfc46ad1f387ea1ddebd97\"\u003e\u003ccode\u003eefa95ea\u003c/code\u003e\u003c/a\u003e drop support for python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/82305185358d8ce21619ec0f324688a14a89c23b\"\u003e\u003ccode\u003e8230518\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/94f1202f08c6d00a9fe1ecf5c8cba9da84e4b22f\"\u003e\u003ccode\u003e94f1202\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/8c983ecd764e1d113d24522838c2a7312460b7eb\"\u003e\u003ccode\u003e8c983ec\u003c/code\u003e\u003c/a\u003e remove previously deprecated code (\u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/f5915f3bfcd9f9da0caf6cd4858bf68068c52963\"\u003e\u003ccode\u003ef5915f3\u003c/code\u003e\u003c/a\u003e set up pre-commit lite workflow\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/blinker/compare/1.8.2...1.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `build` from 1.2.2.post1 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\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/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.2.2.post1...1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachecontrol` from 0.14.3 to 0.14.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/cachecontrol/releases\"\u003ecachecontrol's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 3.28.16 to 3.28.17 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/382\"\u003epsf/cachecontrol#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 3.28.17 to 3.28.18 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/383\"\u003epsf/cachecontrol#383\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump astral-sh/setup-uv from 6.0.1 to 6.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/385\"\u003epsf/cachecontrol#385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(ci): cleanup, add Python 3.14 by \u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/392\"\u003epsf/cachecontrol#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix typo by \u003ca href=\"https://github.com/zackzack38\"\u003e\u003ccode\u003e@​zackzack38\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/388\"\u003epsf/cachecontrol#388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: prepare for 0.14.4 by \u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/394\"\u003epsf/cachecontrol#394\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/zackzack38\"\u003e\u003ccode\u003e@​zackzack38\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/388\"\u003epsf/cachecontrol#388\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/cachecontrol/compare/v0.14.3...v0.14.4\"\u003ehttps://github.com/psf/cachecontrol/compare/v0.14.3...v0.14.4\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/cachecontrol/blob/master/docs/release_notes.rst\"\u003ecachecontrol's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.14.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eExplicitly support Python 3.14.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/cachecontrol/commit/aba0315599d7d4200074ab3606384732be7bbc25\"\u003e\u003ccode\u003eaba0315\u003c/code\u003e\u003c/a\u003e chore: prepare for 0.14.4 (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/e8a968302db0bab1d8016b1da07440803eb230c6\"\u003e\u003ccode\u003ee8a9683\u003c/code\u003e\u003c/a\u003e fix typo (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/388\"\u003e#388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/02df424c36e1103c90131879949c12b8254b64dd\"\u003e\u003ccode\u003e02df424\u003c/code\u003e\u003c/a\u003e chore(ci): cleanup, add Python 3.14 (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/9af76f749721ef7ee27e692c5c62a19aedab7731\"\u003e\u003ccode\u003e9af76f7\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv in the actions group (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/3f169f69e3871340833535380306b43735b5b0a9\"\u003e\u003ccode\u003e3f169f6\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action in the actions group (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/3e0c8f2fbd85bc1d64ecaac7d6b0e838a8dae8f7\"\u003e\u003ccode\u003e3e0c8f2\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action in the actions group (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/psf/cachecontrol/compare/v0.14.3...v0.14.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.2.0 to 6.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.2 (2025-11-13)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor improvements from GitHub Copilot code review.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.1 (2025-10-12)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4ee2600ab09b109f79d4ef08103240bf9f239b2d\"\u003e\u003ccode\u003e4ee2600\u003c/code\u003e\u003c/a\u003e Release v6.2.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/f1cec391fea1a1e407fe596b6e37b849adf7fce5\"\u003e\u003ccode\u003ef1cec39\u003c/code\u003e\u003c/a\u003e Minor improvements from GitHub Copilot code review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/e9117dc1e18389341ce4836f171e23d89f306b65\"\u003e\u003ccode\u003ee9117dc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/371\"\u003e#371\u003c/a\u003e from RektPunk/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6774af212c0c95c2179f2644023fac74317d0262\"\u003e\u003ccode\u003e6774af2\u003c/code\u003e\u003c/a\u003e fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4d8fc20d9eac2cf93d0d938127f6dd3c30441c22\"\u003e\u003ccode\u003e4d8fc20\u003c/code\u003e\u003c/a\u003e docs: add cachetools-async to related projects in README (\u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/ca7508fd56103a1b6d6f17c8e93e36c60b44ca25\"\u003e\u003ccode\u003eca7508f\u003c/code\u003e\u003c/a\u003e Release v6.2.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/f7193077decbbeddbbb76677a1d8912a454886f2\"\u003e\u003ccode\u003ef719307\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/339\"\u003e#339\u003c/a\u003e: Improve documentation regarding funtion default arguments.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b32d00b7d4ca95ba67edfa3167c81938761ae09a\"\u003e\u003ccode\u003eb32d00b\u003c/code\u003e\u003c/a\u003e Fix typos.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a9a7e2cc8f2f6ab3403d5b967e3324cf237878c0\"\u003e\u003ccode\u003ea9a7e2c\u003c/code\u003e\u003c/a\u003e Move extended \u003ca href=\"https://github.com/ttl\"\u003e\u003ccode\u003e@​ttl\u003c/code\u003e\u003c/a\u003e_cache docs to proper place.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/072b7e1724b5f608e611ba6d40162722012c9149\"\u003e\u003ccode\u003e072b7e1\u003c/code\u003e\u003c/a\u003e docs: clarify what units the \u003ccode\u003ettl\u003c/code\u003e argument uses (i.e., seconds)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.2.0...v6.2.2\"\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.0 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.4.0...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cli-helpers` from 2.3.1 to 2.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dbcli/cli_helpers/blob/main/CHANGELOG\"\u003ecli-helpers's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.7.0\u003c/h2\u003e\n\u003cp\u003e(released on 2025-07-28)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emysql\u003c/code\u003e and \u003ccode\u003emysql_unicode\u003c/code\u003e output formats which right-align numbers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.6.0\u003c/h2\u003e\n\u003cp\u003e(released on 2025-07-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegister the JSON formats so they are actually usable.\u003c/li\u003e\n\u003cli\u003eMake JSON formats able to encode Decimals and None/NULLs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.5.0\u003c/h2\u003e\n\u003cp\u003e(released on 2025-07-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded noheader CSV and TSV output formats.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003ejsonl\u003c/code\u003e and \u003ccode\u003ejsonl_escaped\u003c/code\u003e output formats.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.4.0\u003c/h2\u003e\n\u003cp\u003e(released on 2025-03-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded format_timestamps preprocessor for per-column date/time formatting.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/c34ae9fc68c4c8a74124c2cd416fc06148d71445\"\u003e\u003ccode\u003ec34ae9f\u003c/code\u003e\u003c/a\u003e Releasing version 2.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/c0d127c362583fe96ca1a49a6365187f9a03cffb\"\u003e\u003ccode\u003ec0d127c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dbcli/cli_helpers/issues/96\"\u003e#96\u003c/a\u003e from dbcli/RW/add-mysql-output-formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/6f804e9636499f2c37154192e8d60c47670403cc\"\u003e\u003ccode\u003e6f804e9\u003c/code\u003e\u003c/a\u003e add mysql/mysql_unicode output formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/22881bb13b98f0fdf85faf61af3c5c92a2184044\"\u003e\u003ccode\u003e22881bb\u003c/code\u003e\u003c/a\u003e Releasing version 2.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/090a529385052852115f7274ce3a0915820610e4\"\u003e\u003ccode\u003e090a529\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dbcli/cli_helpers/issues/95\"\u003e#95\u003c/a\u003e from dbcli/RW/changelog-v2-6-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/a94997008b955647a4d0c5951b5d19b9105efc36\"\u003e\u003ccode\u003ea949970\u003c/code\u003e\u003c/a\u003e update changelog for release v2.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/789daf491d2945f23e2359f6a3ae93067cf31e7b\"\u003e\u003ccode\u003e789daf4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dbcli/cli_helpers/issues/94\"\u003e#94\u003c/a\u003e from dbcli/RW/json-format-followups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/49bfdb922915a9906ca6af23e1cab9216b055253\"\u003e\u003ccode\u003e49bfdb9\u003c/code\u003e\u003c/a\u003e followups for JSON output formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/0edf14eabfaaf556d75560ae2bfd674ed2276ba9\"\u003e\u003ccode\u003e0edf14e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dbcli/cli_helpers/issues/93\"\u003e#93\u003c/a\u003e from dbcli/RW/prepare-v2-5-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/24fb5fc2bdc561301c34e3e7e572a51352741ba2\"\u003e\u003ccode\u003e24fb5fc\u003c/code\u003e\u003c/a\u003e bump version for v2.5.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dbcli/cli_helpers/compare/v2.3.1...v2.7.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.7 to 8.3.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.3.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.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.3.1/\"\u003ehttps://pypi.org/project/click/8.3.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/28\"\u003ehttps://github.com/pallets/click/milestone/28\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3039\"\u003e#3039\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3055\"\u003e#3055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through the \u003ccode\u003eContext.invoke()\u003c/code\u003e method. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3066\"\u003e#3066\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3068\"\u003e#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect behavior for multiple parameters using the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3071\"\u003e#3071\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3079\"\u003e#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is empty. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3019\"\u003e#3019\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3021\"\u003e#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to \u003ccode\u003etype_cast_value\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3069\"\u003e#3069\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3090\"\u003e#3090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters through the context inside parameter callbacks. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.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.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-11-15\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. :issue:\u003ccode\u003e3039\u003c/code\u003e\n:pr:\u003ccode\u003e3055\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through\nthe \u003ccode\u003eContext.invoke()\u003c/code\u003e method. :issue:\u003ccode\u003e3066\u003c/code\u003e :issue:\u003ccode\u003e3065\u003c/code\u003e :pr:\u003ccode\u003e3068\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect\nbehavior for multiple parameters using the same name. :issue:\u003ccode\u003e3071\u003c/code\u003e :pr:\u003ccode\u003e3079\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters\nthrough the context inside parameter callbacks. :issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3137\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is\nempty. :issue:\u003ccode\u003e3019\u003c/code\u003e :pr:\u003ccode\u003e3021\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to\n\u003ccode\u003etype_cast_value\u003c/code\u003e. :issue:\u003ccode\u003e3069\u003c/code\u003e :pr:\u003ccode\u003e3090\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in \u003ccode\u003eCliRunner\u003c/code\u003e. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/1d038f270701498433cb432f54db89f95f07a845\"\u003e\u003ccode\u003e1d038f2\u003c/code\u003e\u003c/a\u003e release version 8.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/03f3889f505d0c9ca4f9d6810f9e4ba2799f2a66\"\u003e\u003ccode\u003e03f3889\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3141\"\u003e#3141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3867781222cb63693ca67df94352d29d8e6e2770\"\u003e\u003ccode\u003e3867781\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b91bb9548a5617b1197add95e084d569f57149c3\"\u003e\u003ccode\u003eb91bb95\u003c/code\u003e\u003c/a\u003e Provide altered context to callbacks to hide \u003ccode\u003eUNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/437e1e3295c7ec979fc1bf285bb402ca20d847e7\"\u003e\u003ccode\u003e437e1e3\u003c/code\u003e\u003c/a\u003e Temporarily provide a fake context to the callback to hide \u003ccode\u003eUNSET\u003c/code\u003e values as ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ea70da487b05d6bb758d472a3a9ffab4a5b7fcd5\"\u003e\u003ccode\u003eea70da4\u003c/code\u003e\u003c/a\u003e Don't test using a file in docs/ (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e27b307462b725722f620c69dd1d5509c032d18a\"\u003e\u003ccode\u003ee27b307\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003euv run --all-extras pyright --verifytypes click\u003c/code\u003e pass (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a92c573f3195c9da3058eadf1735d38af186d22c\"\u003e\u003ccode\u003ea92c573\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bd131e1ab63da2281d6dd9b8205ad2eb5...\n\n_Description has been truncated_","html_url":"https://github.com/magic-ai-trading-bot/bot-core/pull/76","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/magic-ai-trading-bot%2Fbot-core/issues/76","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/76/packages"},{"uuid":"3606400562","node_id":"PR_kwDOQDraYs6ycup4","number":4,"state":"open","title":"deps: bump the prod-deps group across 1 directory with 28 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":"2025-11-10T06:48:32.000Z","updated_at":"2025-11-10T06:48:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":28,"packages":[{"name":"django","old_version":"4.2.24","new_version":"5.2.8","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"boto3","old_version":"1.40.27","new_version":"1.40.69","repository_url":"https://github.com/boto/boto3"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.11.3","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"37.12.0","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.0","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.1","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.3","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.147.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 28 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `5.2.8` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.40.69` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.11.3` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `37.12.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.4.0` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `8.2.3` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.1` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.3` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.147.0` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 5.2.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47fe39af56ecd0ad73b9c7562511015e96b91b80\"\u003e\u003ccode\u003e47fe39a\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.8 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac9fcf6eb2c909f4150c5287808f49170ce1f9e2\"\u003e\u003ccode\u003eac9fcf6\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-64459 -- Avoided propagating invalid arguments to Q on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6703f364d767e949c5b0e4016433ef75063b4f9b\"\u003e\u003ccode\u003e6703f36\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64459 -- Prevented SQL injections in Q/QuerySet via th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f5d904b63751dea9ffc3b0e046404a7fa5881ac\"\u003e\u003ccode\u003e4f5d904\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedire...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/cbdf128cb316bccf9ca3b3b4966e57bd050bfc8a\"\u003e\u003ccode\u003ecbdf128\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36704\"\u003e#36704\u003c/a\u003e -- Fixed system check error for proxy model with a compo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6775888470317a6d69121779b489bb2dc7350318\"\u003e\u003ccode\u003e6775888\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36696\"\u003e#36696\u003c/a\u003e -- Fixed NameError when inspecting functions with deferr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d5dfffaae52b9dcb4857d42b1e2902290a5c5e3c\"\u003e\u003ccode\u003ed5dfffa\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.8, 5.1.14, and 4.2.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/368f955c371cab5db18e9e239d10560cf15f5ea4\"\u003e\u003ccode\u003e368f955\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36681\"\u003e#36681\u003c/a\u003e -- Removed English pluralization bias from example in do...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/71267c97db211f1d7f1b8b794ceb2167a7619a4d\"\u003e\u003ccode\u003e71267c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35095\"\u003e#35095\u003c/a\u003e -- Clarified Swiss number formatting in docs/topics/i18n...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9b37bd5fe73b0d614ad8e503071d6f7bf2bdf6b2\"\u003e\u003ccode\u003e9b37bd5\u003c/code\u003e\u003c/a\u003e [5.2.x] Made RemoteTestResultTest.test_pickle_errors_detection() compatible w...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...5.2.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on 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/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.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 `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove initial Release Drafter config (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c0b74ed58f933bffd160c60a58620f672710ff7c\"\u003ec0b74ed\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/martinblech/xmltodict/commit/d079849136b031c471ec96a168ad7859ed5994ff\"\u003e\u003ccode\u003ed079849\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e\u003ccode\u003e25b61a4\u003c/code\u003e\u003c/a\u003e fix: allow DOCTYPE with disable_entities=True (default)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a2a9ab7e0692a62f64d97ff12553d0d53368c854\"\u003e\u003ccode\u003ea2a9ab7\u003c/code\u003e\u003c/a\u003e ci(publish): allow uploading release assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/656e6af9543e640fda7e96d6bdd6e693756687be\"\u003e\u003ccode\u003e656e6af\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003e\u003ccode\u003ec986d2d\u003c/code\u003e\u003c/a\u003e fix: fail closed when entities disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e\u003ccode\u003e3d4d2d3\u003c/code\u003e\u003c/a\u003e fix: validate XML comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b4a5f2a3f04aff68384486e957632c8438396fd6\"\u003e\u003ccode\u003eb4a5f2a\u003c/code\u003e\u003c/a\u003e refactor: remove jython-specific parsing branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e\u003ccode\u003e6b464fc\u003c/code\u003e\u003c/a\u003e docs: clarify process_comments docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/34daa304d443e49113d195294d99c6f58ce4714c\"\u003e\u003ccode\u003e34daa30\u003c/code\u003e\u003c/a\u003e refactor: remove unused helper functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e\u003ccode\u003e2025b5c\u003c/code\u003e\u003c/a\u003e docs: clarify behavior for empty lists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shapely` from 2.0.7 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\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/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (unreleased)\u003c/h2\u003e\n\u003cp\u003eImproved performance of the Geometry -\u0026gt; float scalar operations: \u003ccode\u003earea\u003c/code\u003e, \u003ccode\u003elength\u003c/code\u003e,\n\u003ccode\u003eminimum_clearance\u003c/code\u003e, \u003ccode\u003ex\u003c/code\u003e, \u003ccode\u003ey\u003c/code\u003e, \u003ccode\u003ez\u003c/code\u003e and \u003ccode\u003em\u003c/code\u003e. Benchmarks showed a change of call duration\nfrom 2.6 microseconds to 0.2 microseconds (on the \u003ccode\u003ePoint.x\u003c/code\u003e attribute).\u003c/p\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-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/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densify test for latest GEOS main (densify\u0026gt;0.001...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shapely/shapely/compare/2.0.7...2.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-two-factor-auth[phonenumbers]` from 1.17.0 to 1.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/releases\"\u003edjango-two-factor-auth[phonenumbers]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect o...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"},{"uuid":"3606242355","node_id":"PR_kwDOAYRY2s6ycM26","number":5136,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 27 updates","user":"dependabot[bot]","labels":["Maintenance"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-11-21T15:59:00.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-10T05:53:13.000Z","updated_at":"2025-11-21T15:59:02.000Z","time_to_close":986747,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":27,"packages":[{"name":"django","old_version":"4.2.26","new_version":"5.2.8","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.8","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"boto3","old_version":"1.40.30","new_version":"1.40.69","repository_url":"https://github.com/boto/boto3"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.11.3","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"37.12.0","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.0","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.1","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.3","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.16","new_version":"6.147.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.26` | `5.2.8` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.8` | `3.2.9` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.30` | `1.40.69` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.11.3` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `37.12.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.4.0` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `8.2.3` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.1` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.3` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.16` | `6.147.0` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.26 to 5.2.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47fe39af56ecd0ad73b9c7562511015e96b91b80\"\u003e\u003ccode\u003e47fe39a\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.8 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac9fcf6eb2c909f4150c5287808f49170ce1f9e2\"\u003e\u003ccode\u003eac9fcf6\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-64459 -- Avoided propagating invalid arguments to Q on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6703f364d767e949c5b0e4016433ef75063b4f9b\"\u003e\u003ccode\u003e6703f36\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64459 -- Prevented SQL injections in Q/QuerySet via th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f5d904b63751dea9ffc3b0e046404a7fa5881ac\"\u003e\u003ccode\u003e4f5d904\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedire...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/cbdf128cb316bccf9ca3b3b4966e57bd050bfc8a\"\u003e\u003ccode\u003ecbdf128\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36704\"\u003e#36704\u003c/a\u003e -- Fixed system check error for proxy model with a compo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6775888470317a6d69121779b489bb2dc7350318\"\u003e\u003ccode\u003e6775888\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36696\"\u003e#36696\u003c/a\u003e -- Fixed NameError when inspecting functions with deferr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d5dfffaae52b9dcb4857d42b1e2902290a5c5e3c\"\u003e\u003ccode\u003ed5dfffa\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.8, 5.1.14, and 4.2.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/368f955c371cab5db18e9e239d10560cf15f5ea4\"\u003e\u003ccode\u003e368f955\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36681\"\u003e#36681\u003c/a\u003e -- Removed English pluralization bias from example in do...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/71267c97db211f1d7f1b8b794ceb2167a7619a4d\"\u003e\u003ccode\u003e71267c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35095\"\u003e#35095\u003c/a\u003e -- Clarified Swiss number formatting in docs/topics/i18n...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9b37bd5fe73b0d614ad8e503071d6f7bf2bdf6b2\"\u003e\u003ccode\u003e9b37bd5\u003c/code\u003e\u003c/a\u003e [5.2.x] Made RemoteTestResultTest.test_pickle_errors_detection() compatible w...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.26...5.2.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on 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/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.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 `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.8 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\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/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.8...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shapely` from 2.0.7 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\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/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (unreleased)\u003c/h2\u003e\n\u003cp\u003eImproved performance of the Geometry -\u0026gt; float scalar operations: \u003ccode\u003earea\u003c/code\u003e, \u003ccode\u003elength\u003c/code\u003e,\n\u003ccode\u003eminimum_clearance\u003c/code\u003e, \u003ccode\u003ex\u003c/code\u003e, \u003ccode\u003ey\u003c/code\u003e, \u003ccode\u003ez\u003c/code\u003e and \u003ccode\u003em\u003c/code\u003e. Benchmarks showed a change of call duration\nfrom 2.6 microseconds to 0.2 microseconds (on the \u003ccode\u003ePoint.x\u003c/code\u003e attribute).\u003c/p\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-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/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densify test for latest GEOS main (densify\u0026gt;0.001...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shapely/shapely/compare/2.0.7...2.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-two-factor-auth[phonenumbers]` from 1.17.0 to 1.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/releases\"\u003edjango-two-factor-auth[phonenumbers]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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/jazzband/django-two-factor-auth/blob/master/CHANGELOG.md\"\u003edjango-two-factor-auth[phonenumbers]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 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/jazzband/django-two-factor-auth/commit/38a6ba7b6fb579b3465d66f33c4e2f25ffad28c0\"\u003e\u003ccode\u003e38a6ba7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/778\"\u003e#778\u003c/a\u003e from claudep/missing_trans\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/004c93839e331e72740c4e6e73516d05afbca855\"\u003e\u003ccode\u003e004c938\u003c/code\u003e\u003c/a\u003e Fixes \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/777\"\u003e#777\u003c/a\u003e - Add missing Azerbaijani and Serbian translations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/59f44669649f281ca9b25a2beba438609f72a3a5\"\u003e\u003ccode\u003e59f4466\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/776\"\u003e#776\u003c/a\u003e from jazzband/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/d5517043e9f9cdec4e4850f0f33e28eea485fb79\"\u003e\u003ccode\u003ed551704\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/7405b6fd545ddbbd67d28292fca2c8ef6cf0de92\"\u003e\u003ccode\u003e7405b6f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/774\"\u003e#774\u003c/a\u003e from moggers87/release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b47945c8188e46ad2f64bf929c1a745682b6de15\"\u003e\u003ccode\u003eb47945c\u003c/code\u003e\u003c/a\u003e Update CHANGELOG with latest changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b20741c609ca3fd3fe52dd3cfe1ebc3e98ce2383\"\u003e\u003ccode\u003eb20741c\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/966dab4c5bdf11b88e42bc820c8adea684b4e0d0\"\u003e\u003ccode\u003e966dab4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/775\"\u003e#775\u003c/a\u003e from claudep/phoneplugin2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/9c72f871f0ebd3bede20d823372b02608480c4c7\"\u003e\u003ccode\u003e9c72f87\u003c/code\u003e\u003c/a\u003e Refs \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/469\"\u003e#469\u003c/a\u003e - Only import phonenumber functions when plugin is installed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/ec0923bf400d6faf3c82acff312c1fe5add70047\"\u003e\u003ccode\u003eec0923b\u003c/code\u003e\u003c/a\u003e Pull latest translations from Transifex\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/compare/1.17.0...1.18.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.40.30 to 1.40.69\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/aecb2bb02c0af646e07fdc13751e478d4611c992\"\u003e\u003ccode\u003eaecb2bb\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.69'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/ac7646e2bdbf42c6485e291236b65c6b34962311\"\u003e\u003ccode\u003eac7646e\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.69\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/f16254efa15f61e398a4a711b2f2962f45d9535a\"\u003e\u003ccode\u003ef16254e\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/17eb00486e0dfa6fc5fab23b7c8256f3d37c97fe\"\u003e\u003ccode\u003e17eb004\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.68'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/6a34b30475f63c9eb7a84d7eaf7f44908468cf77\"\u003e\u003ccode\u003e6a34b30\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.68' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/3dc1e85172db100b0a5597e603ff046388bedd61\"\u003e\u003ccode\u003e3dc1e85\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.68\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/014e41eeaa6eee59837c8a0aee60becc73a009a6\"\u003e\u003ccode\u003e014e41e\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/6a72deb2a996de0d017890192ef3028fff1fcb20\"\u003e\u003ccode\u003e6a72deb\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.67'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/f9c83204a24a05e6d0c386643682c21518215c8b\"\u003e\u003ccode\u003ef9c8320\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.67' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/4a88e5069f58107977d514cc93bdbccd08493976\"\u003e\u003ccode\u003e4a88e50\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.67\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.40.30...1.40.69\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `coverage` from 7.10.6 to 7.11.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/releases\"\u003ecoverage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.11.3\u003c/h2\u003e\n\u003ch2\u003eVersion 7.11.3 — 2025-11-09\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the 7.11.1 changes meant that conflicts between a requested measurement core and other settings would raise an error. This was a breaking change from previous behavior, as reported in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2076\"\u003eissue 2076\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2078\"\u003eissue 2078\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe previous behavior has been restored: when the requested core conflicts with other settings, another core is used instead, and a warning is issued.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFor contributors: the repo has moved from Ned’s \u003ca href=\"https://github.com/nedbat\"\u003enedbat GitHub account\u003c/a\u003e to the \u003ca href=\"https://github.com/coveragepy\"\u003ecoveragepy GitHub organization\u003c/a\u003e. The default branch has changed from master to main.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.11.3\"\u003ecoverage 7.11.3\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.11.3\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e7.11.2\u003c/h2\u003e\n\u003ch2\u003eVersion 7.11.2 — 2025-11-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: using the “sysmon” measurement core in 7.11.1, if Python code was claimed to come from a non-Python file, a \u003ccode\u003eNotPython\u003c/code\u003e exception could be raised. This could happen for example with Jinja templates compiled to Python, as reported in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2077\"\u003eissue 2077\u003c/a\u003e. This is now fixed.\u003c/li\u003e\n\u003cli\u003eDoc: corrected the first entry in the 7.11.1 changelog.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.11.2\"\u003ecoverage 7.11.2\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.11.2\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e7.11.1\u003c/h2\u003e\n\u003ch2\u003eVersion 7.11.1 — 2025-11-07\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: some chanages to details of how the measurement core is chosen, and how conflicting settings are handled. The “sysmon” core cannot be used with some conurrency settings, with dynamic context, and in Python 3.12/3.13, with branch measurement.\n\u003cul\u003e\n\u003cli\u003eIf the core is not specified and defaults to “sysmon” (Python 3.14+), but other settings conflict with sysmon, then the “ctrace” core will be used instead with no warning. For concurrency conflicts, this used to produce an error, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2064\"\u003eissue 2064\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIf the “sysmon” core is explicitly requested in your configuration, but other settings conflict, an error is now raised. This used to produce a warning.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix: some multi-line case clauses or for loops (and probably other constructs) could cause incorrect claims of missing branches with the sys.monitoring core, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2070\"\u003eissue 2070\u003c/a\u003e. This is now fixed.\u003c/li\u003e\n\u003cli\u003eFix: when running in pytest under coverage, a \u003ccode\u003ebreakpoint()\u003c/code\u003e would stop in the wrong frame, one level down from where it should, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1420\"\u003eissue 1420\u003c/a\u003e. This was due to a coverage change in v6.4.1 that seemed to give a slight performance improvement, but I couldn’t reproduce the performance gain, so it’s been reverted, fixing the debugger problem.\u003c/li\u003e\n\u003cli\u003eA new debug option \u003ccode\u003e--debug=core\u003c/code\u003e shows which core is in use and why.\u003c/li\u003e\n\u003cli\u003eSplit \u003ccode\u003esqlite\u003c/code\u003e debugging information out of the \u003ccode\u003esys\u003c/code\u003e \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/HEAD/commands/cmd_debug.rst#cmd-debug\"\u003ecoverage debug\u003c/a\u003e and \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/HEAD/commands/cmd_debug.rst#cmd-run-debug\"\u003e--debug option\u003c/a\u003e options since it’s bulky and not very useful.\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ca href=\"https://coverage.readthedocs.io/en/latest/howitworks.html#howitworks\"\u003eHow coverage.py works\u003c/a\u003e page to better describe the three different measurement cores.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.11.1\"\u003ecoverage 7.11.1\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.11.1\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e7.11.1\u003c/h2\u003e\n\u003ch2\u003eVersion 7.11.1 — 2025-11-07\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: some chanages to details of how the measurement core is chosen, and how conflicting settings are handled. The “sysmon” core cannot be used with some conurrency settings, with dynamic context, and in Python 3.12/3.13, with branch measurement.\n\u003cul\u003e\n\u003cli\u003eIf the core is not specified and defaults to “sysmon” (Python 3.14+), but other settings conflict with sysmon, then the “ctrace” core will be used instead with no warning. For concurrency conflicts, this used to produce an error, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2064\"\u003eissue 2064\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIf the “sysmon” core is explicitly requested in your configuration, but other settings conflict, an error is now raised. This used to produce a warning.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix: some multi-line case clauses or for loops (and probably other constructs) could cause incorrect claims of missing branches with the sys.monitoring core, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2070\"\u003eissue 2070\u003c/a\u003e. This is now fixed.\u003c/li\u003e\n\u003cli\u003eFix: when running in pytest under coverage, a \u003ccode\u003ebreakpoint()\u003c/code\u003e would stop in the wrong frame, one level down from where it should, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1420\"\u003eissue 1420\u003c/a\u003e. This was due to a coverage change in v6.4.1 that seemed to give a slight performance improve...\n\n_Description has been truncated_","html_url":"https://github.com/SEED-platform/seed/pull/5136","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SEED-platform%2Fseed/issues/5136","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5136/packages"}],"issue_packages":[{"old_version":"1.2.2","new_version":"1.3.1","update_type":"minor","path":null,"pr_created_at":"2026-05-26T23:33:44.000Z","version_change":"1.2.2 → 1.3.1","issue":{"uuid":"4528230982","node_id":"PR_kwDOSn3wsM7fnM-p","number":5,"state":"open","title":"Bump the minor-update group with 145 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-26T23:33:44.000Z","updated_at":"2026-05-26T23:33:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":145,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.5.9","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"transformers","old_version":"5.5.3","new_version":"5.9.0","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"filelock","old_version":"3.16.1","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"alembic","old_version":"1.16.4","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.29.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.2.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.9","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.15","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.15","repository_url":"https://github.com/boto/botocore"},{"name":"click","old_version":"8.1.7","new_version":"8.4.1","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.10.6","new_version":"7.14.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.2.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.5.4","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.2.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.58.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.2","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.53.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.9.0","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.1","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.80.0"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"harfile","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.16.4","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.153.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.12.0","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.16","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librosa","old_version":"0.10.2.post1","new_version":"0.11.0","repository_url":"https://github.com/librosa/librosa"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.12.30","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.5.1.27"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.35"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.22.0.52"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.0.66"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.2.18"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.1.7"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.30.4"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.19.1","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.41.0","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.47.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.1","repository_url":"https://github.com/getsentry/responses"},{"name":"rpds-py","old_version":"0.20.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.17.1","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.5.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smart-open","old_version":"7.1.0","new_version":"7.6.1","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"structlog","old_version":"25.4.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.7.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.68.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.26.1","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.48.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.29.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xxhash","old_version":"3.5.0","new_version":"3.7.0","repository_url":"https://github.com/ifduyue/python-xxhash"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.2","repository_url":"https://github.com/aio-libs/yarl"},{"name":"tpu-inference","old_version":"0.19.0","new_version":"0.20.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"helion","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/pytorch/helion"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 145 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.5.9` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.9.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.136.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.25.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.13.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.29.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.42.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.42.1` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.4.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.18.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.13.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.6.3` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.29.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.2.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.9` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.15` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.15` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.4.1` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.14.1` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.2.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.5.4` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.2.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.58.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.30.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.2` | `2.53.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.6.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.10.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.9.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.1` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.4.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.5.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.16.4` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.15.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.153.0` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.16` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [librosa](https://github.com/librosa/librosa) | `0.10.2.post1` | `0.11.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.36.0` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.12.30` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.5.1.27` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.35` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.22.0.52` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.0.66` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.2.18` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.1.7` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.30.4` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.63b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.63b1` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.19.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.9.6` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.41.0` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.0` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.47.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.20.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.1` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.1` | `0.30.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.17.1` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.5.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.1.0` | `7.6.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.13.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.4.0` | `25.5.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.7.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.68.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.26.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.48.0` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.29.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.7.0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.5.0` | `3.7.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.2` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.19.0` | `0.20.0` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [helion](https://github.com/pytorch/helion) | `1.0.0` | `1.1.0` |\n\nUpdates `regex` from 2026.2.28 to 2026.5.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.5.9\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReverse matching with full unicode casefolding could lead to out-of-range string indexes.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eA fix for older Python versions before free-threading was  supported.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReplaced atomic operations with mutex on pattern object for free-threaded Python.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.26\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#598](https://github.com/mrabarnett/mrab-regex/issues/598): Fix race condition in storage caching with atomic operations.\n\u003cp\u003eReplaced use of PyUnicode_GET_LENGTH with PyUnicode_GetLength.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.2.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdded \\z as alias of \\Z, like in re module.\n\u003cp\u003eAdded prefixmatch as alias of match, like in re module.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.1.15\u003c/p\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.5.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.9.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eCohere2Moe\u003c/h3\u003e\n\u003cp\u003eCommand A+ is a Mixture-of-Experts (MoE) language model from Cohere that features a hybrid attention pattern combining sliding window and full attention layers. The model incorporates both shared and routed experts and supports a very large context window for processing extensive text sequences.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/cohere2_moe\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new cohere2_moe model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46115\"\u003e#46115\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/46115\"\u003e#46115\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eParakeet tdt (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44171\"\u003e#44171\u003c/a\u003e)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eParakeet tdt (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44171\"\u003e#44171\u003c/a\u003e) by \u003ca href=\"https://github.com/lmaksym\"\u003e\u003ccode\u003e@​lmaksym\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eHRM-Text\u003c/h3\u003e\n\u003cp\u003eHRM-Text is an improved autoregressive language-modeling variant of the Hierarchical Reasoning Model (HRM) that uses a hierarchical recurrent forward pass with two transformer stacks - one for slow, abstract planning (H) and one for fast, detailed computation (L) - reused inside a nested recurrence. It features PrefixLM attention where instruction tokens attend bidirectionally while response tokens attend causally, per-head sigmoid output gates, and parameterless RMSNorm. The model is designed as a base language model without instruction tuning or chat templates.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/hrm_text\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/papers/2506.21734\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd hrm text (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46025\"\u003e#46025\u003c/a\u003e) by \u003ca href=\"https://github.com/abcd1927\"\u003e\u003ccode\u003e@​abcd1927\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/46025\"\u003e#46025\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking changes\u003c/h2\u003e\n\u003cp\u003eThe \u003ccode\u003etext_embeds\u003c/code\u003e input for SAM3, EdgeTAM, and SAM3-Lite-Text models now expects full text embeddings instead of just pooler outputs, aligning with other models in the library — users must update their inputs accordingly.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e🚨Fix memory leaks caused by lru decorators in vision models (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45922\"\u003e#45922\u003c/a\u003e) by \u003ca href=\"https://github.com/yonigozlan\"\u003e\u003ccode\u003e@​yonigozlan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAudio\u003c/h2\u003e\n\u003cp\u003eAudio support was expanded with the addition of AudioFlamingoNext model checkpoints and improved compilability of audio/vision encoders via standalone pure functions. Additional improvements include better error messaging when loading audio from video files and new documentation for audio/video processors.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003euser friendly error when loading audio from video (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45221\"\u003e#45221\u003c/a\u003e) by \u003ca href=\"https://github.com/eustlb\"\u003e\u003ccode\u003e@​eustlb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45221\"\u003e#45221\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] adding audio/video processors (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45795\"\u003e#45795\u003c/a\u003e) by \u003ca href=\"https://github.com/stevhliu\"\u003e\u003ccode\u003e@​stevhliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45795\"\u003e#45795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Audio Flamingo Next checkpoints (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44830\"\u003e#44830\u003c/a\u003e) by \u003ca href=\"https://github.com/lashahub\"\u003e\u003ccode\u003e@​lashahub\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44830\"\u003e#44830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtract dynamic vision/audio tensors into standalone pure functions (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45396\"\u003e#45396\u003c/a\u003e) by \u003ca href=\"https://github.com/IlyasMoutawwakil\"\u003e\u003ccode\u003e@​IlyasMoutawwakil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45396\"\u003e#45396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGeneration\u003c/h2\u003e\n\u003cp\u003eFixed generation issues including \u003ccode\u003einputs_embeds\u003c/code\u003e and \u003ccode\u003eper_layer_inputs\u003c/code\u003e handling for Gemma4, an \u003ccode\u003eAttributeError\u003c/code\u003e in RAG's \u003ccode\u003egenerate()\u003c/code\u003e caused by missing config fields, and flaky VLM generation tests by blocking special image tokens during sampling.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Gemma4 generation from inputs_embeds and per_layer_inputs (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46049\"\u003e#46049\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46049\"\u003e#46049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AttributeError in RAG generate() for missing config fields (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46035\"\u003e#46035\u003c/a\u003e) by \u003ca href=\"https://github.com/Sriniketh24\"\u003e\u003ccode\u003e@​Sriniketh24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46035\"\u003e#46035\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0a2757da521a7a49b8143d9e0c938f08747d682e\"\u003e\u003ccode\u003e0a2757d\u003c/code\u003e\u003c/a\u003e release v5.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/e370a7f3f49c3c759cf8c7c01a935ce0e00c3f44\"\u003e\u003ccode\u003ee370a7f\u003c/code\u003e\u003c/a\u003e fix cohere2 tp_plan for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f59ffd1ef95634f9b0317ec5d8d43d71e3604a10\"\u003e\u003ccode\u003ef59ffd1\u003c/code\u003e\u003c/a\u003e Add new cohere2_moe model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46115\"\u003e#46115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4f41f261efcfd71ce08db2890b7c632cc9ffc0bc\"\u003e\u003ccode\u003e4f41f26\u003c/code\u003e\u003c/a\u003e [loading] Free up tensors faster inside ConversionOps (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46110\"\u003e#46110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d5dd7eed2f7d5b2ccba569e150647ef275e56365\"\u003e\u003ccode\u003ed5dd7ee\u003c/code\u003e\u003c/a\u003e Fix post processing RF-DETR (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46041\"\u003e#46041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0b25f8c49c37530ce9f8742d7a8c19ed8d254d7d\"\u003e\u003ccode\u003e0b25f8c\u003c/code\u003e\u003c/a\u003e [serve] Support for reasoning  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45690\"\u003e#45690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0df9b7fcaab447c75543598e6d959065c2296a24\"\u003e\u003ccode\u003e0df9b7f\u003c/code\u003e\u003c/a\u003e Fix Gemma4 generation from inputs_embeds and per_layer_inputs (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46049\"\u003e#46049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/38a8b55f22d593c103e8bcc616413e70a5ef03ca\"\u003e\u003ccode\u003e38a8b55\u003c/code\u003e\u003c/a\u003e Parakeet tdt (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44171\"\u003e#44171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/3428030a179620b01cb598928b6cc7d5e5e60990\"\u003e\u003ccode\u003e3428030\u003c/code\u003e\u003c/a\u003e Remove mask visualization tool from \u003ccode\u003emasking_utils.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46066\"\u003e#46066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/dda06506142a0efe4081a0ab574fbd3c7c72dc37\"\u003e\u003ccode\u003edda0650\u003c/code\u003e\u003c/a\u003e user friendly error when loading audio from video (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45221\"\u003e#45221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.128.0 to 0.136.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.3\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (the default). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15589\"\u003e#15589\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.2\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Validate Server Sent Event fields to avoid applications from sending broken data. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15588\"\u003e#15588\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15464\"\u003e#15464\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update and simplify docs about help and management. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15583\"\u003e#15583\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add docs references to central contributing docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15580\"\u003e#15580\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15577\"\u003e#15577\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🍱 Update sponsors: TalorData image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15562\"\u003e#15562\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs, simplify usage of admonitions, only default ones. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15553\"\u003e#15553\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix image URLs in \u003ccode\u003eindex.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15534\"\u003e#15534\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Fix Azkaban spelling typo in \u003ccode\u003evirtual-environments.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15463\"\u003e#15463\u003c/a\u003e by \u003ca href=\"https://github.com/isaacbernat\"\u003e\u003ccode\u003e@​isaacbernat\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Improve layout and styling. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15462\"\u003e#15462\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Refactor opinions section with interactive tabs and new logos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15458\"\u003e#15458\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add FastAPI Conf '26 announcement to docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15457\"\u003e#15457\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Improve translation consistency in \u003ccode\u003e‎docs/pt/docs/advanced/generate-clients.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15456\"\u003e#15456\u003c/a\u003e by \u003ca href=\"https://github.com/Will-thom\"\u003e\u003ccode\u003e@​Will-thom\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15530\"\u003e#15530\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15529\"\u003e#15529\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15528\"\u003e#15528\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15527\"\u003e#15527\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15526\"\u003e#15526\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15525\"\u003e#15525\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15524\"\u003e#15524\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15522\"\u003e#15522\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15523\"\u003e#15523\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15520\"\u003e#15520\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15521\"\u003e#15521\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Fix typos in Spanish LLM-prompt. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15472\"\u003e#15472\u003c/a\u003e by \u003ca href=\"https://github.com/crr004\"\u003e\u003ccode\u003e@​crr004\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Update tests, don't double dispose the engine. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15587\"\u003e#15587\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⚡️ Speed up test suite via caching and fixture scopes to make it ~24% faster. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13583\"\u003e#13583\u003c/a\u003e by \u003ca href=\"https://github.com/dikos1337\"\u003e\u003ccode\u003e@​dikos1337\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15585\"\u003e#15585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump urllib3 from 2.6.3 to 2.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15502\"\u003e#15502\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump idna from 3.11 to 3.15. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15565\"\u003e#15565\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.15.0 to 4.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15571\"\u003e#15571\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Migrate docs from MkDocs to Zensical. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15563\"\u003e#15563\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15548\"\u003e#15548\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/82064857539e6286522c347b4b11331b48dd2378\"\u003e\u003ccode\u003e8206485\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c910e0139f983d0e04e2d1d235cd71803afeae34\"\u003e\u003ccode\u003ec910e01\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/063b5bf582d31fb155cc6bc6f88cf512329d0fd5\"\u003e\u003ccode\u003e063b5bf\u003c/code\u003e\u003c/a\u003e ♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/22b02e26f9e8c7e32bd8266e2b0ebe8bb3a0db2b\"\u003e\u003ccode\u003e22b02e2\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3b252a2a22ba27a8ab83d6bde7d9cddbc5bf738e\"\u003e\u003ccode\u003e3b252a2\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c7fb7851b3389f24c51701d705458989be53ccbb\"\u003e\u003ccode\u003ec7fb785\u003c/code\u003e\u003c/a\u003e ♻️ Validate Server Sent Event fields to avoid applications from sending broke...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cb83b83dcf78eab4ea17d504db5abcda705fbdc4\"\u003e\u003ccode\u003ecb83b83\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/00f805cec94c0bf48c1f9a563535a3ab2e6f90ab\"\u003e\u003ccode\u003e00f805c\u003c/code\u003e\u003c/a\u003e ✅ Update tests, don't double dispose the engine (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15587\"\u003e#15587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3675137523dc167981aa3a3c44599b4f3079ccd8\"\u003e\u003ccode\u003e3675137\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7b57e42986bb4d40c9eb6580537d13fb8e76097e\"\u003e\u003ccode\u003e7b57e42\u003c/code\u003e\u003c/a\u003e 📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15464\"\u003e#15464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.0...0.136.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.0 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Django] Pass correct registry to MultiProcessCollector by \u003ca href=\"https://github.com/jelly\"\u003e\u003ccode\u003e@​jelly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1152\"\u003eprometheus/client_python#1152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an AIOHTTP exporter by \u003ca href=\"https://github.com/Lexicality\"\u003e\u003ccode\u003e@​Lexicality\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1139\"\u003eprometheus/client_python#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd remove_matching() method for metric label deletion by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1121\"\u003eprometheus/client_python#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(multiprocess): avoid double-building child metric names (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1035\"\u003e#1035\u003c/a\u003e) by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1146\"\u003eprometheus/client_python#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't interleave histogram metrics in multi-process collector by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1148\"\u003eprometheus/client_python#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax registry type annotations for exposition by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1149\"\u003eprometheus/client_python#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded compression support in pushgateway by \u003ca href=\"https://github.com/ritesh-avesha\"\u003e\u003ccode\u003e@​ritesh-avesha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1144\"\u003eprometheus/client_python#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) by \u003ca href=\"https://github.com/Chadys\"\u003e\u003ccode\u003e@​Chadys\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1143\"\u003eprometheus/client_python#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code...\n\n_Description has been truncated_","html_url":"https://github.com/kingcharlezz/deepseek-v4-flash-deterministic-vllm/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingcharlezz%2Fdeepseek-v4-flash-deterministic-vllm/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"}},{"old_version":"1.2.2","new_version":"1.3.1","update_type":"minor","path":null,"pr_created_at":"2026-05-15T08:01:08.000Z","version_change":"1.2.2 → 1.3.1","issue":{"uuid":"4452313204","node_id":"PR_kwDOI7xefs7b1Vf9","number":42717,"state":"open","title":"Bump the minor-update group across 1 directory with 143 updates","user":"dependabot[bot]","labels":["rocm","ci/build","nvidia","dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-15T08:01:08.000Z","updated_at":"2026-05-20T05:01:30.742Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":143,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.5.9","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"transformers","old_version":"5.5.3","new_version":"5.8.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"filelock","old_version":"3.16.1","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"alembic","old_version":"1.16.4","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.29.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.2.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.9","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.10","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.10","repository_url":"https://github.com/boto/botocore"},{"name":"click","old_version":"8.1.7","new_version":"8.4.0","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.10.6","new_version":"7.14.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.2.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.5.4","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.2.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.1","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.53.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.9.0","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.80.0"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"harfile","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.15.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.152.8","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.12.0","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.15","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librosa","old_version":"0.10.2.post1","new_version":"0.11.0","repository_url":"https://github.com/librosa/librosa"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.12.30","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.4.1.1"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.2.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.2.75"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.22.0.52"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.2.0.46"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.17.1.22"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.0.1"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.7.10.1"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.30.4"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.2.75"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.19.1","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.40.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.46.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.0","repository_url":"https://github.com/getsentry/responses"},{"name":"rpds-py","old_version":"0.20.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.17.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"safetensors","old_version":"0.4.5","new_version":"0.7.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.5.0","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smart-open","old_version":"7.1.0","new_version":"7.6.1","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"structlog","old_version":"25.4.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.7.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.68.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.25.1","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.47.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.29.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xxhash","old_version":"3.5.0","new_version":"3.7.0","repository_url":"https://github.com/ifduyue/python-xxhash"},{"name":"yarl","old_version":"1.17.1","new_version":"1.23.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 143 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.5.9` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.8.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.136.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.25.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.13.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.29.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.4.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.18.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.13.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.6.3` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.29.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.2.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.9` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.10` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.10` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.4.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.14.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.2.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.5.4` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.2.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.57.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.1` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.30.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.2` | `2.53.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.6.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.10.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.9.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.4.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.5.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.15.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.15.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.152.8` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.15` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [librosa](https://github.com/librosa/librosa) | `0.10.2.post1` | `0.11.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.36.0` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.12.30` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.4.1.1` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.2.75` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.22.0.52` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.2.0.46` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.17.1.22` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.0.1` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.7.10.1` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.30.4` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.19.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.9.6` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.40.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.0` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.46.4` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.20.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.1` | `0.30.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.17.0` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.4.5` | `0.7.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.5.0` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.1.0` | `7.6.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.13.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.4.0` | `25.5.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.7.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.68.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.25.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.47.0` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.29.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.7.0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.5.0` | `3.7.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.23.0` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.5.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.5.9\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReverse matching with full unicode casefolding could lead to out-of-range string indexes.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eA fix for older Python versions before free-threading was  supported.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReplaced atomic operations with mutex on pattern object for free-threaded Python.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.26\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#598](https://github.com/mrabarnett/mrab-regex/issues/598): Fix race condition in storage caching with atomic operations.\n\u003cp\u003eReplaced use of PyUnicode_GET_LENGTH with PyUnicode_GetLength.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.2.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdded \\z as alias of \\Z, like in re module.\n\u003cp\u003eAdded prefixmatch as alias of match, like in re module.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.1.15\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.5.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePatch release v5.8.1\u003c/h1\u003e\n\u003cp\u003eThis release is mainly to fix the Deepseek V4 integration!!!\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[fix] Add fatal_error to ContinuousBatchingManager so the serving... by \u003ca href=\"https://github.com/qgallouedec\"\u003e\u003ccode\u003e@​qgallouedec\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/remi-or\"\u003e\u003ccode\u003e@​remi-or\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix WeightConverter regex incorrectly matching shared_experts as experts by \u003ca href=\"https://github.com/silencelamb\"\u003e\u003ccode\u003e@​silencelamb\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deepseek v4 by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45892\"\u003e#45892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeepseek v4 csa mask collapse by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Sawyer117\"\u003e\u003ccode\u003e@​Sawyer117\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45928\"\u003e#45928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.8.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.8.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eDeepSeek-V4\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eDeepSeek-V4 is the next-generation MoE (Mixture of Experts) language model from DeepSeek that introduces several architectural innovations over DeepSeek-V3. The architecture replaces Multi-head Latent Attention (MLA) with a hybrid local + long-range attention design, swaps residual connections for Manifold-Constrained Hyper-Connections (mHC), and bootstraps the first few MoE layers with a static token-id → expert-id hash table. This implementation covers DeepSeek-V4-Flash, DeepSeek-V4-Pro, and their -Base pretrained variants, which share the same architecture but differ in width, depth, expert count and weights.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/deepseek_v4\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash/blob/main/DeepSeek_V4.pdf\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd DeepSeek V4 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45643\"\u003e#45643\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45643\"\u003e#45643\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGemma 4 Assistant\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eGemma 4 Assistant is a small, text-only model that enables speculative decoding for Gemma 4 models using the Multi-Token Prediction (MTP) method and associated candidate generator. The model shares the same Gemma4TextModel backbone as other Gemma 4 models but uses KV sharing throughout the entire model, allowing it to reuse the KV cache populated by the target model and skip the pre-fill phase entirely. This architecture includes cross-attention to make the most of the target model's context, allowing the assistant to accurately predict more drafted tokens per drafting round.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/gemma4_assistant\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFirst model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45788\"\u003e#45788\u003c/a\u003e) by \u003ca href=\"https://github.com/SindhuRaghuram97\"\u003e\u003ccode\u003e@​SindhuRaghuram97\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45788\"\u003e#45788\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeechPlus\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eGranite Speech Plus is a variant of Granite Speech that enhances the projector by consuming the concatenation of the encoder's final hidden states with an arbitrary subset of its intermediate hidden states along the feature dimension. It is a multimodal speech-to-text model that can transcribe audio, provide speaker annotation and word level timestamps by responding to text prompts. The model inherits the same architecture components as Granite Speech including the speech encoder, query transformer projector, language model, and optional LoRA adapter.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granite_speech_plus\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for a new Granite-Speech-Plus model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45695\"\u003e#45695\u003c/a\u003e) by \u003ca href=\"https://github.com/zvik\"\u003e\u003ccode\u003e@​zvik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45695\"\u003e#45695\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGranite4Vision\u003c/h3\u003e\n\u003cp\u003eGranite Vision 4.1 is a vision-language model from IBM Research designed for enterprise-grade document data extraction. It specializes in chart extraction (Chart2CSV, Chart2Summary, Chart2Code), table extraction (JSON, HTML, OTSL), and semantic key-value pair extraction. The model builds on LLaVA-NeXT with architectural innovations including SigLIP2 Vision Encoder, Window Q-Former Projectors, and DeepStack Feature Injection with 8 vision-to-LLM injection points.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granite4_vision\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Granite 4.1 Vision (granite4_vision) (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45597\"\u003e#45597\u003c/a\u003e) by \u003ca href=\"https://github.com/artem-spector\"\u003e\u003ccode\u003e@​artem-spector\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45597\"\u003e#45597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cc832f9055ba11c8c55f918ab4bda9472b910d48\"\u003e\u003ccode\u003ecc832f9\u003c/code\u003e\u003c/a\u003e up\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f966d7b36278c7ca15967af062c4556f8bf4eea4\"\u003e\u003ccode\u003ef966d7b\u003c/code\u003e\u003c/a\u003e Deepseek v4 csa mask collapse (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45928\"\u003e#45928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/283f3f08614c0ee09e0bdc60d57dbc4d8d37af39\"\u003e\u003ccode\u003e283f3f0\u003c/code\u003e\u003c/a\u003e Fix deepseek v4 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45892\"\u003e#45892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4e0be9c4c5f2edb62f2e28c28c4149d3b84a3ae0\"\u003e\u003ccode\u003e4e0be9c\u003c/code\u003e\u003c/a\u003e Fix WeightConverter regex incorrectly matching shared_experts as experts in D...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/ec852625706cbe9a1264949659dad82b43fafa57\"\u003e\u003ccode\u003eec85262\u003c/code\u003e\u003c/a\u003e [fix] Add \u003ccode\u003efatal_error\u003c/code\u003e to \u003ccode\u003eContinuousBatchingManager\u003c/code\u003e so the serving layer c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/049d2bf1220747b6d39e2a978b9f5fe0defa1dca\"\u003e\u003ccode\u003e049d2bf\u003c/code\u003e\u003c/a\u003e v5.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/2871cafffb3b221b5f1df7e59033a15a7830309f\"\u003e\u003ccode\u003e2871caf\u003c/code\u003e\u003c/a\u003e Add Granite 4.1 Vision (granite4_vision) (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45597\"\u003e#45597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/aaec1092d413d0ea7249101ea43f74b5d6d60936\"\u003e\u003ccode\u003eaaec109\u003c/code\u003e\u003c/a\u003e fix: correct spelling in continuous_api docstring (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45749\"\u003e#45749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/7050d0e0bf5a97c7c0149c319681601373621eae\"\u003e\u003ccode\u003e7050d0e\u003c/code\u003e\u003c/a\u003e Fix link to modular transformers documentation (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45746\"\u003e#45746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/df2f2b539902c78db6a0f71fb2c175880e390576\"\u003e\u003ccode\u003edf2f2b5\u003c/code\u003e\u003c/a\u003e Gemma4: fix failed test cases (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45568\"\u003e#45568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.128.0 to 0.136.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.0...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.0 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.4/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Django] Pass correct registry to MultiProcessCollector by \u003ca href=\"https://github.com/jelly\"\u003e\u003ccode\u003e@​jelly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1152\"\u003eprometheus/client_python#1152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an AIOHTTP exporter by \u003ca href=\"https://github.com/Lexicality\"\u003e\u003ccode\u003e@​Lexicality\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1139\"\u003eprometheus/client_python#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd remove_matching() method for metric label deletion by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1121\"\u003eprometheus/client_python#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(multiprocess): avoid double-building child metric names (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1035\"\u003e#1035\u003c/a\u003e) by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1146\"\u003eprometheus/client_python#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't interleave histogram metrics in multi-process collector by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1148\"\u003eprometheus/client_python#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax registry type annotations for exposition by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1149\"\u003eprometheus/client_python#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded compression support in pushgateway by \u003ca href=\"https://github.com/ritesh-avesha\"\u003e\u003ccode\u003e@​ritesh-avesha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1144\"\u003eprometheus/client_python#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) by \u003ca href=\"https://github.com/Chadys\"\u003e\u003ccode\u003e@​Chadys\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1143\"\u003eprometheus/client_python#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1134\"\u003eprometheus/client_python#1134\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003c...\n\n_Description has been truncated_","html_url":"https://github.com/vllm-project/vllm/pull/42717","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vllm-project%2Fvllm/issues/42717","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/42717/packages"}},{"old_version":"1.2.2","new_version":"1.3.1","update_type":"minor","path":null,"pr_created_at":"2026-05-04T05:33:52.000Z","version_change":"1.2.2 → 1.3.1","issue":{"uuid":"4374224451","node_id":"PR_kwDOI7xefs7X4umm","number":41606,"state":"closed","title":"Bump the minor-update group across 1 directory with 140 updates","user":"dependabot[bot]","labels":["rocm","ci/build","nvidia","dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-05T23:42:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-04T05:33:52.000Z","updated_at":"2026-05-05T23:42:43.000Z","time_to_close":151729,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":140,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.4.4","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"transformers","old_version":"5.5.3","new_version":"5.7.0","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"filelock","old_version":"3.16.1","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"alembic","old_version":"1.16.4","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.40.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.2.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.8","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.3","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.3","repository_url":"https://github.com/boto/botocore"},{"name":"click","old_version":"8.1.7","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.2.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.5.4","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.2.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.2.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.62.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.50.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.5.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.8.2","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.74.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.80.0"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"harfile","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.13.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.152.4","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.12.0","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.13","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librosa","old_version":"0.10.2.post1","new_version":"0.11.0","repository_url":"https://github.com/librosa/librosa"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.12.30","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.4.1.1"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.2.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.2.75"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.21.1.3"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.2.0.46"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.17.1.22"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.0.1"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.7.10.1"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.30.4"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.2.75"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.19.1","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.2.1","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.40.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.4.1","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.27.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.46.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.0","repository_url":"https://github.com/getsentry/responses"},{"name":"rpds-py","old_version":"0.20.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.17.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"safetensors","old_version":"0.4.5","new_version":"0.7.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.4.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smart-open","old_version":"7.1.0","new_version":"7.6.0","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"structlog","old_version":"25.4.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.68.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.25.1","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.28.2","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xxhash","old_version":"3.5.0","new_version":"3.7.0","repository_url":"https://github.com/ifduyue/python-xxhash"},{"name":"yarl","old_version":"1.17.1","new_version":"1.23.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 140 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.4.4` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.33.1` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.7.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.136.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.3` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.25.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.29.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.4.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.18.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.13.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.6.3` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.40.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.2.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.8` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.3` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.3` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.5` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.2.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.5.4` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.2.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.56.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.0` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.2.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.62.1` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.30.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.2` | `2.50.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.5.1` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.10.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.8.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.74.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.4.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.13.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.15.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.152.4` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.13` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [librosa](https://github.com/librosa/librosa) | `0.10.2.post1` | `0.11.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.36.0` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.12.30` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.4.1.1` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.2.75` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.21.1.3` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.2.0.46` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.17.1.22` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.0.1` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.7.10.1` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.30.4` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.19.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.2.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.9.6` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.40.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.4.1` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.27.2` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.46.3` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.20.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.1` | `0.30.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.17.0` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.4.5` | `0.7.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.4.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.1.0` | `7.6.0` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.13.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.4.0` | `25.5.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.68.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.25.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.46.0` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.28.2` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.7.0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.5.0` | `3.7.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.23.0` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.4.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.7.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eLaguna\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eLaguna is Poolside's mixture-of-experts language model family that extends standard SwiGLU MoE transformers with two key innovations. It features per-layer head counts allowing different decoder layers to have different query-head counts while sharing the same KV cache shape, and implements a sigmoid MoE router with auxiliary-loss-free load balancing that uses element-wise sigmoid of gate logits plus learned per-expert bias for router scoring.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/laguna\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLaguna XS.2 implementation (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45673\"\u003e#45673\u003c/a\u003e) by \u003ca href=\"https://github.com/joerowell\"\u003e\u003ccode\u003e@​joerowell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45673\"\u003e#45673\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDEIMv2\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eDEIMv2 (DETR with Improved Matching v2) is a real-time object detection model that extends DEIM with DINOv3 features and spans eight model sizes from X to Atto for diverse deployment scenarios. It uses a Spatial Tuning Adapter (STA) for larger variants to convert DINOv3's single-scale output into multi-scale features, while ultra-lightweight models employ pruned HGNetv2 backbones. The unified design achieves superior performance-cost trade-offs, with DEIMv2-X reaching 57.8 AP with only 50.3M parameters and DEIMv2-S being the first sub-10M model to exceed 50 AP on COCO.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/deimv2\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/papers/2509.20787\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003emodel: Add DEIMv2 to Transformers (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44339\"\u003e#44339\u003c/a\u003e) by \u003ca href=\"https://github.com/harshaljanjani\"\u003e\u003ccode\u003e@​harshaljanjani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/44339\"\u003e#44339\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAttention\u003c/h2\u003e\n\u003cp\u003eSeveral attention-related bugs were fixed across multiple models, including a cross-attention cache type error in T5Gemma2 for long inputs, incorrect cached forward behavior in Qwen3.5's gated-delta-net linear attention, and a crash in GraniteMoeHybrid when no Mamba layers are present. Attention function dispatch was also updated to align with the latest model implementations.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix cross-attention cache layer type for T5Gemma2 long inputs (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45540\"\u003e#45540\u003c/a\u003e) by \u003ca href=\"https://github.com/Beichen-Ma\"\u003e\u003ccode\u003e@​Beichen-Ma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45540\"\u003e#45540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Qwen3.5] Fix GDN linear attention multi-token cached forward (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45513\"\u003e#45513\u003c/a\u003e) by \u003ca href=\"https://github.com/kashif\"\u003e\u003ccode\u003e@​kashif\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45513\"\u003e#45513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GraniteMoeHybrid _update_mamba_mask crash on attention-only models (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45514\"\u003e#45514\u003c/a\u003e) by \u003ca href=\"https://github.com/tianhaocui\"\u003e\u003ccode\u003e@​tianhaocui\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45514\"\u003e#45514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlign latest model attention function dispatch (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45598\"\u003e#45598\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45598\"\u003e#45598\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTokenizers\u003c/h2\u003e\n\u003cp\u003eThere was a bug in AutoTokenizer that caused the wrong tokenizer class to be initialized. This caused regressions in models like DeepSeek R1.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003echange got reverted (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45680\"\u003e#45680\u003c/a\u003e) by \u003ca href=\"https://github.com/itazap\"\u003e\u003ccode\u003e@​itazap\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45680\"\u003e#45680\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGeneration\u003c/h2\u003e\n\u003cp\u003eContinuous batching generation received several fixes and improvements, including correcting KV deduplication and memory estimation for long sequences (16K+), and removing misleading warnings about \u003ccode\u003enum_return_sequences\u003c/code\u003e and other unsupported features that were incorrectly firing even when functionality worked correctly. Documentation for per-request sampling parameters was also added.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003egenerate: drop stale num_return_sequences warning on continuous batching path (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45582\"\u003e#45582\u003c/a\u003e) by \u003ca href=\"https://github.com/joaquinhuigomez\"\u003e\u003ccode\u003e@​joaquinhuigomez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45582\"\u003e#45582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/6ffbb07f93d9e44457450d1150136309b0dc966b\"\u003e\u003ccode\u003e6ffbb07\u003c/code\u003e\u003c/a\u003e v5.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/18e7fd752e6fa7dd4ff8b828ff8f3aec5b0882ae\"\u003e\u003ccode\u003e18e7fd7\u003c/code\u003e\u003c/a\u003e change got reverted (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45680\"\u003e#45680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/2dff8f76f48abd7dd31b8dc156046509887d3cf1\"\u003e\u003ccode\u003e2dff8f7\u003c/code\u003e\u003c/a\u003e v5.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93bed93e7518444cce442a89c78008fa0a21c963\"\u003e\u003ccode\u003e93bed93\u003c/code\u003e\u003c/a\u003e fixing more typos (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45689\"\u003e#45689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/a29e9675a864e2c7854a4d0f574589a8db1dac2e\"\u003e\u003ccode\u003ea29e967\u003c/code\u003e\u003c/a\u003e [docs] cb memory management (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45587\"\u003e#45587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/2d01799735d455f745b9c53d5a9d2eebdd7be569\"\u003e\u003ccode\u003e2d01799\u003c/code\u003e\u003c/a\u003e [docs] cpu offloading (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45660\"\u003e#45660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4aba7167e328965caadcdfc6834b982037889f86\"\u003e\u003ccode\u003e4aba716\u003c/code\u003e\u003c/a\u003e docs(README_zh-hans): clarify conditions for not using Transformers (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45688\"\u003e#45688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f4fc6d013864f5389b6518787438cf55359613d1\"\u003e\u003ccode\u003ef4fc6d0\u003c/code\u003e\u003c/a\u003e fix padding side issue for fast_vlm tests (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45592\"\u003e#45592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5d7ff4393ab99aa7cadf4cccd1f814dbb799f2bb\"\u003e\u003ccode\u003e5d7ff43\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ex_clip\u003c/code\u003e: 8 failed test cases (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45394\"\u003e#45394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/aadc005711da266af1f75c33185172af9d9f19bf\"\u003e\u003ccode\u003eaadc005\u003c/code\u003e\u003c/a\u003e zero_shot_object_detection ValueError fix for python 3.13 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45669\"\u003e#45669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.128.0 to 0.136.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.0...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.0 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Django] Pass correct registry to MultiProcessCollector by \u003ca href=\"https://github.com/jelly\"\u003e\u003ccode\u003e@​jelly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1152\"\u003eprometheus/client_python#1152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an AIOHTTP exporter by \u003ca href=\"https://github.com/Lexicality\"\u003e\u003ccode\u003e@​Lexicality\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1139\"\u003eprometheus/client_python#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd remove_matching() method for metric label deletion by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1121\"\u003eprometheus/client_python#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(multiprocess): avoid double-building child metric names (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1035\"\u003e#1035\u003c/a\u003e) by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1146\"\u003eprometheus/client_python#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't interleave histogram metrics in multi-process collector by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1148\"\u003eprometheus/client_python#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax registry type annotations for exposition by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1149\"\u003eprometheus/client_python#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded compression support in pushgateway by \u003ca href=\"https://github.com/ritesh-avesha\"\u003e\u003ccode\u003e@​ritesh-avesha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1144\"\u003eprometheus/client_python#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) by \u003ca href=\"https://github.com/Chadys\"\u003e\u003ccode\u003e@​Chadys\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1143\"\u003eprometheus/client_python#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1134\"\u003eprometheus/client_python#1134\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.22.1...v0.23.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.22.1...v0.23.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/2cd1738fb880fd0e6aa9a02ec48585128388a6cd\"\u003e\u003ccode\u003e2cd1738\u003c/code\u003e\u003c/a\u003e Release 0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/daa1626eaf705318013b708954499b0a049088c8\"\u003e\u003ccode\u003edaa1626\u003c/code\u003e\u003c/a\u003e docs: add API reference for all metric types  (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1159\"\u003e#1159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/8673912276bdca7ddbca5d163eb11422b546bffb\"\u003e\u003ccode\u003e8673912\u003c/code\u003e\u003c/a\u003e Support MultiProcessCollector in RestrictedRegistry. (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1150\"\u003e#1150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/671f75c6f1f04838995fadd57cda21beee01838b\"\u003e\u003ccode\u003e671f75c\u003c/code\u003e\u003c/a\u003e Fix spaces in grouping key values for push_to_gateway (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/1cf53feae63b6ecb0bd76eee80582a0fba957e09\"\u003e\u003ccode\u003e1cf53fe\u003c/code\u003e\u003c/a\u003e Fix server shutdown documentation (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/a8541354519d04852d24688845f1d2d495eef59c\"\u003e\u003ccode\u003ea854135\u003c/code\u003e\u003c/a\u003e Migrate to Github Actions (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/f417f6ea8f058165a1934e368fed245e91aafc14\"\u003e\u003ccode\u003ef417f6e\u003c/code\u003e\u003c/a\u003e Release 0.24.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/6f0e967c1f7a408b75861d6833a8d303874be95d\"\u003e\u003ccode\u003e6f0e967\u003c/code\u003e\u003c/a\u003e Pass correct registry to MultiProcessCollector (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/c5024d310fbfcba45a5e9db62e337a3a7930ea16\"\u003e\u003ccode\u003ec5024d3\u003c/code\u003e\u003c/a\u003e Release 0.24.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/e1cdc203b1cf5f15c7b9a64d79fccc7907a62ca3\"\u003e\u003ccode\u003ee1cdc20\u003c/code\u003e\u003c/a\u003e Add Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"...\n\n_Description has been truncated_","html_url":"https://github.com/vllm-project/vllm/pull/41606","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vllm-project%2Fvllm/issues/41606","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/41606/packages"}},{"old_version":"1.2.2","new_version":"1.3.1","update_type":"minor","path":null,"pr_created_at":"2026-05-04T01:13:35.000Z","version_change":"1.2.2 → 1.3.1","issue":{"uuid":"4373502248","node_id":"PR_kwDOPWxxeM7X2cNd","number":21,"state":"closed","title":"Bump the minor-update group across 1 directory with 12 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-18T01:29:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-04T01:13:35.000Z","updated_at":"2026-05-18T01:29:44.000Z","time_to_close":1210567,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":12,"packages":[{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"xgrammar","old_version":"0.1.16","new_version":"0.2.0","repository_url":"https://github.com/mlc-ai/xgrammar"},{"name":"depyf","old_version":"0.18.0","new_version":"0.20.0","repository_url":"https://github.com/thuml/depyf"},{"name":"numba","old_version":"0.60.0","new_version":"0.61.2","repository_url":"https://github.com/numba/numba"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"triton","old_version":"3.1.0","new_version":"3.7.0+gitb4e20bbe"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx-book-theme","old_version":"1.0.1","new_version":"1.1.4","repository_url":"https://github.com/executablebooks/sphinx-book-theme"},{"name":"sphinx-togglebutton","old_version":"0.3.2","new_version":"0.4.5","repository_url":"https://github.com/executablebooks/sphinx-togglebutton"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 12 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [xgrammar](https://github.com/mlc-ai/xgrammar) | `0.1.16` | `0.2.0` |\n| [depyf](https://github.com/thuml/depyf) | `0.18.0` | `0.20.0` |\n| [numba](https://github.com/numba/numba) | `0.60.0` | `0.61.2` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.4.0` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| triton | `3.1.0` | `3.7.0+gitb4e20bbe` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.3.0` |\n| [sphinx-book-theme](https://github.com/executablebooks/sphinx-book-theme) | `1.0.1` | `1.1.4` |\n| [sphinx-togglebutton](https://github.com/executablebooks/sphinx-togglebutton) | `0.3.2` | `0.4.5` |\n\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xgrammar` from 0.1.16 to 0.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mlc-ai/xgrammar/releases\"\u003exgrammar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor: unify reasoning parameter and rename model keys by \u003ca href=\"https://github.com/Ubospica\"\u003e\u003ccode\u003e@​Ubospica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/609\"\u003emlc-ai/xgrammar#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: fix gpt-oss's tool-calling format. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/607\"\u003emlc-ai/xgrammar#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add Perplexity collaborator logo by \u003ca href=\"https://github.com/Ubospica\"\u003e\u003ccode\u003e@​Ubospica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/612\"\u003emlc-ai/xgrammar#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose draft tree traversal on GrammarMatcher by \u003ca href=\"https://github.com/Ubospica\"\u003e\u003ccode\u003e@​Ubospica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/613\"\u003emlc-ai/xgrammar#613\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: reduce structural-tag compile time at high tool count by \u003ca href=\"https://github.com/Ubospica\"\u003e\u003ccode\u003e@​Ubospica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/616\"\u003emlc-ai/xgrammar#616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: align builtin structural tags with chat templates for reasoning and tool calls by \u003ca href=\"https://github.com/Ubospica\"\u003e\u003ccode\u003e@​Ubospica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/610\"\u003emlc-ai/xgrammar#610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erelease: bump version to 0.2.0 by \u003ca href=\"https://github.com/Ubospica\"\u003e\u003ccode\u003e@​Ubospica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/619\"\u003emlc-ai/xgrammar#619\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/mlc-ai/xgrammar/compare/v0.1.34...v0.2.0\"\u003ehttps://github.com/mlc-ai/xgrammar/compare/v0.1.34...v0.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.1.34\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReapply \u0026quot;refactor: migrate the binding logic into \u003ccode\u003etvm_ffi\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/550\"\u003e#550\u003c/a\u003e)\u0026quot;\u0026quot; by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/576\"\u003emlc-ai/xgrammar#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: accept {n, -1} as unbounded repeat in EBNF parser by \u003ca href=\"https://github.com/ushiromiya-lion\"\u003e\u003ccode\u003e@​ushiromiya-lion\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/579\"\u003emlc-ai/xgrammar#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: AnyTokensFormat with exclude_tokens should be treated as self-terminating by \u003ca href=\"https://github.com/ushiromiya-lion\"\u003e\u003ccode\u003e@​ushiromiya-lion\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/578\"\u003emlc-ai/xgrammar#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: fix the building of the website. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/582\"\u003emlc-ai/xgrammar#582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc: update the citation part of the readme. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/583\"\u003emlc-ai/xgrammar#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefac: remove the restriction of \u003ccode\u003eunlimited\u003c/code\u003e. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/585\"\u003emlc-ai/xgrammar#585\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add builtin structural tag support for Gemma 4 models by \u003ca href=\"https://github.com/leuski\"\u003e\u003ccode\u003e@​leuski\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/588\"\u003emlc-ai/xgrammar#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: auto-skip HuggingFace tests when HF_TOKEN is not set by \u003ca href=\"https://github.com/ianliuy\"\u003e\u003ccode\u003e@​ianliuy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/589\"\u003emlc-ai/xgrammar#589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix the broken link of api/python/builtin_structural_tag. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/592\"\u003emlc-ai/xgrammar#592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: rewrite structural tag tutorial with clearer structure by \u003ca href=\"https://github.com/Ubospica\"\u003e\u003ccode\u003e@​Ubospica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/590\"\u003emlc-ai/xgrammar#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: disable the unit test with python3.14t and macOS-14. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/598\"\u003emlc-ai/xgrammar#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: support \u003ccode\u003etool_choice\u003c/code\u003e for \u003ccode\u003eget_builtin_structural_tag\u003c/code\u003e. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/586\"\u003emlc-ai/xgrammar#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix structural tag validation and rename builtin tests by \u003ca href=\"https://github.com/Ubospica\"\u003e\u003ccode\u003e@​Ubospica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/601\"\u003emlc-ai/xgrammar#601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: fix the type compatibility. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/602\"\u003emlc-ai/xgrammar#602\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: disable the use of hf_token when \u003ccode\u003enot hf_token_required\u003c/code\u003e is explicitly passed. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/604\"\u003emlc-ai/xgrammar#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: support DeepSeek_v4's tool calling format. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/596\"\u003emlc-ai/xgrammar#596\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: fix the DeepSeek_R1's built-in tool-calling format. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/597\"\u003emlc-ai/xgrammar#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: support Qwen3.6's tool-calling format. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/603\"\u003emlc-ai/xgrammar#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump to v0.1.34. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/605\"\u003emlc-ai/xgrammar#605\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNote\u003c/h2\u003e\n\u003cp\u003eThe builtin structural tag in this version is experimental, and the API is subject to change before the next version.\u003c/p\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leuski\"\u003e\u003ccode\u003e@​leuski\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/588\"\u003emlc-ai/xgrammar#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ianliuy\"\u003e\u003ccode\u003e@​ianliuy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/589\"\u003emlc-ai/xgrammar#589\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/mlc-ai/xgrammar/compare/v0.1.33...v0.1.34\"\u003ehttps://github.com/mlc-ai/xgrammar/compare/v0.1.33...v0.1.34\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.1.33\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor: simplify TagDispatch by removing stop_eos and stop_str by \u003ca href=\"https://github.com/Ubospica\"\u003e\u003ccode\u003e@​Ubospica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/554\"\u003emlc-ai/xgrammar#554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: provide \u003ccode\u003ePlusFormat\u003c/code\u003e, \u003ccode\u003eOptionalFormat\u003c/code\u003e, \u003ccode\u003eStarFormat\u003c/code\u003e to enhance \u003ccode\u003eStructuralTag\u003c/code\u003e. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/557\"\u003emlc-ai/xgrammar#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: support \u003ccode\u003estructural_tag\u003c/code\u003e-level cache. by \u003ca href=\"https://github.com/Seven-Streams\"\u003e\u003ccode\u003e@​Seven-Streams\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/pull/553\"\u003emlc-ai/xgrammar#553\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/mlc-ai/xgrammar/commit/5433fdbea7003eea61cb863768a05fb8da3bf919\"\u003e\u003ccode\u003e5433fdb\u003c/code\u003e\u003c/a\u003e release: bump version to 0.2.0 (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/619\"\u003e#619\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlc-ai/xgrammar/commit/c1eceb68a4d2cd366ce35cf10dfe4cf1e1e33ab2\"\u003e\u003ccode\u003ec1eceb6\u003c/code\u003e\u003c/a\u003e fix: align builtin structural tags with chat templates for reasoning and tool...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlc-ai/xgrammar/commit/96ae88b19284eb543748619cac552dab1f49b213\"\u003e\u003ccode\u003e96ae88b\u003c/code\u003e\u003c/a\u003e perf: reduce structural-tag compile time at high tool count (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/616\"\u003e#616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlc-ai/xgrammar/commit/fc9b5daa6cb2447da010e991bf9ece64349371e5\"\u003e\u003ccode\u003efc9b5da\u003c/code\u003e\u003c/a\u003e Expose draft tree traversal on GrammarMatcher (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/613\"\u003e#613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlc-ai/xgrammar/commit/1912de23292735af6533e6380c38ee291dbc1ba6\"\u003e\u003ccode\u003e1912de2\u003c/code\u003e\u003c/a\u003e docs: add Perplexity collaborator logo (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlc-ai/xgrammar/commit/dba71b091b2406e3833affc81d48e125bded9796\"\u003e\u003ccode\u003edba71b0\u003c/code\u003e\u003c/a\u003e fix: fix gpt-oss's tool-calling format. (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/607\"\u003e#607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlc-ai/xgrammar/commit/0abebf79649171695cb2b73a543a66c2c9eca2b9\"\u003e\u003ccode\u003e0abebf7\u003c/code\u003e\u003c/a\u003e refactor: unify reasoning parameter and rename model keys (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlc-ai/xgrammar/commit/d68df627908376f3ed5e0a989395a03cc41894cd\"\u003e\u003ccode\u003ed68df62\u003c/code\u003e\u003c/a\u003e Bump to v0.1.34. (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/605\"\u003e#605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlc-ai/xgrammar/commit/382e730542ca8321b7361529505a40ae0ebcbe52\"\u003e\u003ccode\u003e382e730\u003c/code\u003e\u003c/a\u003e feat: support Qwen3.6's tool-calling format. (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/603\"\u003e#603\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlc-ai/xgrammar/commit/d76254b726272ec3ba37f2531064a7c024a075b8\"\u003e\u003ccode\u003ed76254b\u003c/code\u003e\u003c/a\u003e fix: fix the DeepSeek_R1's built-in tool-calling format. (\u003ca href=\"https://redirect.github.com/mlc-ai/xgrammar/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mlc-ai/xgrammar/compare/v0.1.16...v0.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `depyf` from 0.18.0 to 0.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/thuml/depyf/releases\"\u003edepyf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.19.0 release with recent improvements\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd device to imports by \u003ca href=\"https://github.com/ProExpertProg\"\u003e\u003ccode\u003e@​ProExpertProg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/82\"\u003ethuml/depyf#82\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing default argument values in \u003ccode\u003epatched_load_by_key_path\u003c/code\u003e by \u003ca href=\"https://github.com/nopperl\"\u003e\u003ccode\u003e@​nopperl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/81\"\u003ethuml/depyf#81\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate test files by \u003ca href=\"https://github.com/youkaichao\"\u003e\u003ccode\u003e@​youkaichao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/83\"\u003ethuml/depyf#83\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy instruction by \u003ca href=\"https://github.com/youkaichao\"\u003e\u003ccode\u003e@​youkaichao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/84\"\u003ethuml/depyf#84\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/ProExpertProg\"\u003e\u003ccode\u003e@​ProExpertProg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/82\"\u003ethuml/depyf#82\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nopperl\"\u003e\u003ccode\u003e@​nopperl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/81\"\u003ethuml/depyf#81\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/thuml/depyf/compare/v0.18.0...v0.19.0\"\u003ehttps://github.com/thuml/depyf/compare/v0.18.0...v0.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/thuml/depyf/commit/b67e16787e8c66324e114b4f2c6024438385b242\"\u003e\u003ccode\u003eb67e167\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/91ea66d5feca12392ba9c45a08094d948514343d\"\u003e\u003ccode\u003e91ea66d\u003c/code\u003e\u003c/a\u003e update test files (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/88\"\u003e#88\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/4fd2d58b0f6361f4c39aaf26e98b94049b7e6dd6\"\u003e\u003ccode\u003e4fd2d58\u003c/code\u003e\u003c/a\u003e bugfix for list extend with argval != 1 and add DEPYF_REMOVE_TEMP env var (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/87\"\u003e#87\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/2612c16584d7360a511044a313eac02e15f46831\"\u003e\u003ccode\u003e2612c16\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/e379286a302abde2808d249ba186bbe7a8235cc0\"\u003e\u003ccode\u003ee379286\u003c/code\u003e\u003c/a\u003e fix copy instruction (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/5cde94f8fe9446c56ccb19df71dc9f887d4f948a\"\u003e\u003ccode\u003e5cde94f\u003c/code\u003e\u003c/a\u003e update test files (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/83\"\u003e#83\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/461af54b38e07df88c33f5da81970bfc82eaa325\"\u003e\u003ccode\u003e461af54\u003c/code\u003e\u003c/a\u003e Add missing default argument values in \u003ccode\u003epatched_load_by_key_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/81\"\u003e#81\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/3c95e7ac95e133bce7ef8bf6f609dda2e8f331bf\"\u003e\u003ccode\u003e3c95e7a\u003c/code\u003e\u003c/a\u003e Add device to imports (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/thuml/depyf/compare/v0.18.0...v0.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numba` from 0.60.0 to 0.61.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numba/numba/releases\"\u003enumba's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eNumba 0.61.2\u003c/h2\u003e\n\u003cp\u003eMinor Numba release adding NumPy 2.2 support. View detailed release notes and changelog \u003ca href=\"https://numba.readthedocs.io/en/stable/release/0.61.2-notes.html\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eNumba 0.61.0\u003c/h2\u003e\n\u003cp\u003eMajor Numba release adding Python 3.13 and NumPy 2.1 support. View detailed release notes and changelog \u003ca href=\"https://numba.readthedocs.io/en/stable/release/0.61.0-notes.html\"\u003ehere\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/numba/numba/commit/1e70d8ceba56a135e046e32e1e7ad2fcd22fd8ab\"\u003e\u003ccode\u003e1e70d8c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numba/numba/issues/10032\"\u003e#10032\u003c/a\u003e from kc611/release0.61\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/746eb866a4a976ee0e9ba7cf5d9853ff74d2b908\"\u003e\u003ccode\u003e746eb86\u003c/code\u003e\u003c/a\u003e Changed release target to 0.61.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/12cb3e8fafc5b0bc331cb4c1ea703e305e4302ff\"\u003e\u003ccode\u003e12cb3e8\u003c/code\u003e\u003c/a\u003e Updated dates in version support table and release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/6aa65a8dacdac72fb19d47e6606abdb2a5ed5c27\"\u003e\u003ccode\u003e6aa65a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numba/numba/issues/10028\"\u003e#10028\u003c/a\u003e from swap357/update_release_notes_0.61.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/48ab6b115c424d3e0d65f8431e9f210c54deaf47\"\u003e\u003ccode\u003e48ab6b1\u003c/code\u003e\u003c/a\u003e update release notes to exclude 0.61.0 PRs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/d788b465371b76597ffa67d16792be0a5e21bf23\"\u003e\u003ccode\u003ed788b46\u003c/code\u003e\u003c/a\u003e update release-notes with PRs and authors list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/f2210fa2801807a9f88ed4d725df186014e18af5\"\u003e\u003ccode\u003ef2210fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numba/numba/issues/9999\"\u003e#9999\u003c/a\u003e from kc611/release0.61\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/d91b9366a7d99dc40f79ce88072c390100e1c416\"\u003e\u003ccode\u003ed91b936\u003c/code\u003e\u003c/a\u003e Added formatting changes in release message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/a22acbd59146f0960c9b0bd28a636fe1f18d862f\"\u003e\u003ccode\u003ea22acbd\u003c/code\u003e\u003c/a\u003e Updated release notes message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/bf0eadcf69496a89d6252257020c6ecdb4aa00ff\"\u003e\u003ccode\u003ebf0eadc\u003c/code\u003e\u003c/a\u003e Update docs/source/release/0.61.1-notes.rst\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numba/numba/compare/0.60.0...0.61.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `audioread` from 3.0.1 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/fdd0c2e7f20f3a9b9110c454a140108097236268\"\u003e\u003ccode\u003efdd0c2e\u003c/code\u003e\u003c/a\u003e Increment version to 3.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ec7b3bcb29781132b58affd1053d63da64ed9383\"\u003e\u003ccode\u003eec7b3bc\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13 (\u003ca href=\"https://redirect.github.com/beetbox/audioread/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/bfee9a74d6c389a4d60053cf1d1c6af580fae2e6\"\u003e\u003ccode\u003ebfee9a7\u003c/code\u003e\u003c/a\u003e run tests on python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/b671e436cf5c0c6006f190e3561fc680773237be\"\u003e\u003ccode\u003eb671e43\u003c/code\u003e\u003c/a\u003e Add standard-aifc and standard-sunau as dependencies for python 3.13 and above.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ef77a506b641cdeca11b1e782105e29f8f93eb81\"\u003e\u003ccode\u003eef77a50\u003c/code\u003e\u003c/a\u003e Remove legacy url\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/f13b2a2d5d59c683107eb7d9df35c54f1a2c1820\"\u003e\u003ccode\u003ef13b2a2\u003c/code\u003e\u003c/a\u003e Try using proper pypi repo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/84cd1272d498346449c972b046621b3c54d60c08\"\u003e\u003ccode\u003e84cd127\u003c/code\u003e\u003c/a\u003e Increment version to 3.1.0a1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/208562b078770dc373eb9a44554b44d8f1402773\"\u003e\u003ccode\u003e208562b\u003c/code\u003e\u003c/a\u003e Modernize package setup (\u003ca href=\"https://redirect.github.com/beetbox/audioread/issues/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/6da161102578169ce964e05b83cd5c2e8bb8e6c7\"\u003e\u003ccode\u003e6da1611\u003c/code\u003e\u003c/a\u003e Add release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ee7afcf55ae0d760a04db269e2dce6e0adb9cfd4\"\u003e\u003ccode\u003eee7afcf\u003c/code\u003e\u003c/a\u003e Modernize package setup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beetbox/audioread/compare/v3.0.1...v3.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lazy-loader` from 0.4 to 0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scientific-python/lazy-loader/releases\"\u003elazy-loader's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.5\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003esuppress_warning\u003c/code\u003e parameter to the \u003ccode\u003eload\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/146\"\u003e#146\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Remove problematic try/finally block (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/137\"\u003e#137\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake sure that \u003ccode\u003e__dir__\u003c/code\u003e returns new copies of \u003ccode\u003e__all__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/135\"\u003e#135\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow disabled eager loading with EAGER_IMPORT=0 (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/166\"\u003e#166\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate release process doc (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/105\"\u003e#105\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAddress a few more places that used the old spelling (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/130\"\u003e#130\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.7 support (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/106\"\u003e#106\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate ruff config (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/110\"\u003e#110\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate label check action (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/112\"\u003e#112\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBump pre-commit from 3.7.0 to 3.7.1 (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/118\"\u003e#118\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRename repo to match package name (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/119\"\u003e#119\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eTest on Python 3.13 development releases (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/120\"\u003e#120\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/122\"\u003e#122\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate ruff config (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/123\"\u003e#123\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate GH actions (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/124\"\u003e#124\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd codespell pre-commit (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/125\"\u003e#125\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate pytest config (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/126\"\u003e#126\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBump pre-commit from 3.7.1 to 3.8.0 in the actions group (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/129\"\u003e#129\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBump pre-commit from 3.8.0 to 4.0.1 in the actions group (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/132\"\u003e#132\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit (12/2024) (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/138\"\u003e#138\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSupport Python 3.13 (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/139\"\u003e#139\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 support (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/140\"\u003e#140\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/141\"\u003e#141\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBump pre-commit from 4.0.1 to 4.1.0 in the actions group (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/143\"\u003e#143\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBump codecov/codecov-action from 4 to 5 in the actions group (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/142\"\u003e#142\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBump scientific-python/attach-next-milestone-action from bc07be829f693829263e57d5e8489f4e57d3d420 to c9cfab10ad0c67fed91b01103db26b7f16634639 in the actions group (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/145\"\u003e#145\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003erf: Use list.copy() instead of list() (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBump pre-commit from 4.1.0 to 4.2.0 in the actions group (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/149\"\u003e#149\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/150\"\u003e#150\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSwitch to src layout, move tests to root (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/151\"\u003e#151\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate development status as Production/Stable (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/108\"\u003e#108\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd spin configuration (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/152\"\u003e#152\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003etest: Update test cases to get full coverage (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/153\"\u003e#153\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 in the actions group (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/157\"\u003e#157\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBump pre-commit from 4.2.0 to 4.3.0 in the actions group (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/156\"\u003e#156\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14 (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/158\"\u003e#158\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/154\"\u003e#154\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSet dependabot cooldown and schedule for 15th of each month (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/162\"\u003e#162\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/scientific-python/lazy-loader/blob/main/CHANGELOG.md\"\u003elazy-loader's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003elazy-loader 0.5\u003c/h1\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003esuppress_warning\u003c/code\u003e parameter to the \u003ccode\u003eload\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/146\"\u003e#146\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Remove problematic try/finally block (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/137\"\u003e#137\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake sure that \u003ccode\u003e__dir__\u003c/code\u003e returns new copies of \u003ccode\u003e__all__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/135\"\u003e#135\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAllow disabled eager loading with EAGER_IMPORT=0 (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/166\"\u003e#166\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate release process doc (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/105\"\u003e#105\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMaintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.7 support (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/106\"\u003e#106\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate ruff config (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/110\"\u003e#110\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate label check action (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/112\"\u003e#112\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRename repo to match package name (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/119\"\u003e#119\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eTest on Python 3.13 development releases (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/120\"\u003e#120\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/122\"\u003e#122\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate ruff config (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/123\"\u003e#123\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate GH actions (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/124\"\u003e#124\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd codespell pre-commit (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/125\"\u003e#125\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate pytest config (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/126\"\u003e#126\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit (12/2024) (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/138\"\u003e#138\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSupport Python 3.13 (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/139\"\u003e#139\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 support (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/140\"\u003e#140\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003erf: Use list.copy() instead of list() (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSwitch to src layout, move tests to root (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/151\"\u003e#151\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate development status as Production/Stable (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/108\"\u003e#108\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd spin configuration (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/152\"\u003e#152\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003etest: Update test cases to get full coverage (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/153\"\u003e#153\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14 (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/158\"\u003e#158\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eSet dependabot cooldown and schedule for 15th of each month (\u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/pull/162\"\u003e#162\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003e7 authors added to this release (alphabetically):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBrigitta Sipőcz (\u003ca href=\"https://github.com/bsipocz\"\u003e\u003ccode\u003e@​bsipocz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChris Markiewicz (\u003ca href=\"https://github.com/effigies\"\u003e\u003ccode\u003e@​effigies\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJarrod Millman (\u003ca href=\"https://github.com/jarrodmillman\"\u003e\u003ccode\u003e@​jarrodmillman\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLars Grüter (\u003ca href=\"https://github.com/lagru\"\u003e\u003ccode\u003e@​lagru\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMark Harfouche (\u003ca href=\"https://github.com/hmaarrfk\"\u003e\u003ccode\u003e@​hmaarrfk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOfek Lev (\u003ca href=\"https://github.com/ofek\"\u003e\u003ccode\u003e@​ofek\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStefan van der Walt (\u003ca href=\"https://github.com/stefanv\"\u003e\u003ccode\u003e@​stefanv\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/2566bebe6a36ecd0bc5dc5a69e8767f7e68fb6d0\"\u003e\u003ccode\u003e2566beb\u003c/code\u003e\u003c/a\u003e Designate 0.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/d6c33994ddbb3735a7633cec95cabf5d4468e648\"\u003e\u003ccode\u003ed6c3399\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/issues/166\"\u003e#166\u003c/a\u003e from stefanv/eager-disable-with-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/4aead86ebd5cf528d0acc4bac5b77b37d6397cd3\"\u003e\u003ccode\u003e4aead86\u003c/code\u003e\u003c/a\u003e Tiny clarification\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/0a9187b188a73c8a6390e5bce7d4e05242ec4ef7\"\u003e\u003ccode\u003e0a9187b\u003c/code\u003e\u003c/a\u003e Update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/16acc44bb9351c8306ac71fd543939a0b5a21b81\"\u003e\u003ccode\u003e16acc44\u003c/code\u003e\u003c/a\u003e Allow EAGER_IMPORT=\u0026quot;\u0026quot; to disable it\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/87815de0db1e43ba016042da6a4d616cfe489b70\"\u003e\u003ccode\u003e87815de\u003c/code\u003e\u003c/a\u003e Allow disabled eager loading with EAGER_IMPORT=0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/ccddd440c5e56dfd286004ae654c5581fbe38abb\"\u003e\u003ccode\u003eccddd44\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scientific-python/lazy-loader/issues/163\"\u003e#163\u003c/a\u003e from scientific-python/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/a988b6cfdabac9dc43d88c312fbe9b26d1248e5c\"\u003e\u003ccode\u003ea988b6c\u003c/code\u003e\u003c/a\u003e chore: Rerun prettier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/4d599c49e2c0cdadc21713aa89ea62ad8c8af3a8\"\u003e\u003ccode\u003e4d599c4\u003c/code\u003e\u003c/a\u003e chore: Use raw string for pytest.raises match regex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scientific-python/lazy-loader/commit/cef6ab73cdf3440e0cf36c355ca9df9522e81b47\"\u003e\u003ccode\u003ecef6ab7\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/scientific-python/lazy-loader/compare/v0.4...v0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.3.6 to 4.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: improve homebrew path detection by \u003ca href=\"https://github.com/daeho-ro\"\u003e\u003ccode\u003e@​daeho-ro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/370\"\u003etox-dev/platformdirs#370\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/daeho-ro\"\u003e\u003ccode\u003e@​daeho-ro\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/370\"\u003etox-dev/platformdirs#370\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/platformdirs/compare/4.3.8...4.4.0\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing examples and fix order of examples in README by \u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\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/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\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/platformdirs/compare/4.3.7...4.3.8\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.7\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChunk dependabot updates into a single PR by \u003ca href=\"https://github.com/ofek\"\u003e\u003ccode\u003e@​ofek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/311\"\u003etox-dev/platformdirs#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/330\"\u003etox-dev/platformdirs#330\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/platformdirs/compare/4.3.6...4.3.7\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst\"\u003eplatformdirs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.6 (2026-04-09)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(release): use double quotes for tag variable expansion :pr:\u003ccode\u003e477\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.5 (2026-04-06)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs(appauthor): clarify None vs False on Windows :pr:\u003ccode\u003e476\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSeparates implementations of macOS dirs that share a default :pr:\u003ccode\u003e473\u003c/code\u003e - by :user:\u003ccode\u003eGoddesen\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove persist-credentials: false from release job :pr:\u003ccode\u003e472\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003efix: do not duplicate site dirs in Unix.iter_{config,site}_dirs() when use_site_for_root is active :pr:\u003ccode\u003e469\u003c/code\u003e - by\n:user:\u003ccode\u003eviccie30\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔧 fix(type): resolve ty 0.0.25 type errors :pr:\u003ccode\u003e468\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔒 ci(workflows): add zizmor security auditing :pr:\u003ccode\u003e467\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(release): generate docstrfmt-compatible changelog entries :pr:\u003ccode\u003e463\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.4 (2026-03-05)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e461\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README.md\u003c/li\u003e\n\u003cli\u003e📝 docs: add project logo to documentation :pr:\u003ccode\u003e459\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStandardize .github files to .yaml suffix\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump the all group with 2 updates :pr:\u003ccode\u003e457\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMove SECURITY.md to .github/SECURITY.md\u003c/li\u003e\n\u003cli\u003eAdd permissions to workflows :pr:\u003ccode\u003e455\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd security policy\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e454\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.2 (2026-02-16)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: restructure following Diataxis framework :pr:\u003ccode\u003e448\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs(platforms): fix RST formatting and TOC hierarchy :pr:\u003ccode\u003e447\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.1 (2026-02-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: enhance README, fix issues, and reorganize platforms.rst :pr:\u003ccode\u003e445\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/c945a28a2cd2ae34154540d144e7671ed80b1c10\"\u003e\u003ccode\u003ec945a28\u003c/code\u003e\u003c/a\u003e feat: improve homebrew path detection (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/9f616e954ee35621a75843fa40180cbd6fea2670\"\u003e\u003ccode\u003e9f616e9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/5720f26595056e11516d1167185ffde135e0aa55\"\u003e\u003ccode\u003e5720f26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/848924dfbec662829225a4a1108e1a818539304a\"\u003e\u003ccode\u003e848924d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/df2e678930d48ac0cb0b019da78a069dfbeae579\"\u003e\u003ccode\u003edf2e678\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/009a3f81879f356a7af0923c2ba443756b552e1c\"\u003e\u003ccode\u003e009a3f8\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/3d194ee7ef7ce2a021a2b5fbf77bbddd171ca9a1\"\u003e\u003ccode\u003e3d194ee\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/6046533d719a8871f5f8fc4fc99c01a14b282853\"\u003e\u003ccode\u003e6046533\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/88389cef8fce1da42858a621770ce4dee8f739f9\"\u003e\u003ccode\u003e88389ce\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/82763ff0c244c7ca7b4eaa4b4336be224b385389\"\u003e\u003ccode\u003e82763ff\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pooch` from 1.8.2 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fatiando/pooch/releases\"\u003epooch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased on: 2026/01/30\u003c/p\u003e\n\u003cp\u003eDOI: \u003ca href=\"https://doi.org/10.5281/zenodo.18379610\"\u003ehttps://doi.org/10.5281/zenodo.18379610\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBreaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/450\"\u003e#450\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExplicitly pass \u003ccode\u003efilter\u003c/code\u003e to \u003ccode\u003eTarFile.extractall\u003c/code\u003e on Python \u0026gt;=3.12 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/458\"\u003e#458\u003c/a\u003e). Pass a \u003ccode\u003efilter=\u0026quot;data\u0026quot;\u003c/code\u003e argument to \u003ccode\u003eTarFile.extractall\u003c/code\u003e to prevent dangerous security issues. The \u003ccode\u003efilter\u003c/code\u003e argument was added in Python 3.12, so only pass it on versions greater or equal than that. This change matches the default behaviour that will take place since Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix TQDM usage (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/465\"\u003e#465\u003c/a\u003e). Newer versions of tqdm behave differently at a terminal vs in a jupyter notebook. Import from \u003ccode\u003etqdm.auto\u003c/code\u003e instead so that the downloader looks right in either a notebook or the terminal.\u003c/li\u003e\n\u003cli\u003eFix bug in file hashing on FIPS enabled system (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/511\"\u003e#511\u003c/a\u003e). Set \u003ccode\u003euserforsecurity=False\u003c/code\u003e on \u003ccode\u003ehashlib\u003c/code\u003e hashing algorithms to make FIPS enabled systems happy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSet User-Agent in requests headers for DOI downloaders (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/507\"\u003e#507\u003c/a\u003e). Pass a custom User-Agent when making requests through DOI downloaders in order to bypass limit rates imposed by services like Zenodo to block abusive requests. The can now filter requests coming from Pooch from the rest. Add a global \u003ccode\u003eREQUESTS_HEADERS\u003c/code\u003e variable that is used by the \u003ccode\u003edoi_to_url\u003c/code\u003e function (which requires to make a request to doi.org to figure out the service provider). Add a new \u003ccode\u003eheaders\u003c/code\u003e argument to the \u003ccode\u003eDOIDownloader\u003c/code\u003e to specifically pass requests headers. By default it'll use the Pooch's default user agent.\u003c/li\u003e\n\u003cli\u003eExtend support for Python 3.13 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/451\"\u003e#451\u003c/a\u003e) and Python 3.14 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/505\"\u003e#505\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eProvide more descriptive errors when DOI request fails (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/477\"\u003e#477\u003c/a\u003e). Raise the \u003ccode\u003erequests\u003c/code\u003e response to provide more informative errors when the status code is between 400 and 600.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMaintenance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd testing data to the package distributions (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/421\"\u003e#421\u003c/a\u003e). The test code \u003ccode\u003epooch/tests\u003c/code\u003e is installed but he data in \u003ccode\u003epooch/tests/data\u003c/code\u003e are not. This makes it impossible to run tests on the installed package. Add the appropriate setuptools configuration to make it happen.\u003c/li\u003e\n\u003cli\u003eMove push to codecov to its own job in Actions (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/424\"\u003e#424\u003c/a\u003e). Remove the push to codecov step from the \u003ccode\u003etest\u003c/code\u003e job into a new job that depends on the test job. Upload the coverage reports as artifacts after testing, and reuse the artifacts in the new job. Upload all coverage reports in a single push to Codecov to minimize the number of hits.\u003c/li\u003e\n\u003cli\u003eIncrease the max positional args allowed by pylint (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/438\"\u003e#438\u003c/a\u003e). Configure \u003ccode\u003epylint\u003c/code\u003e to increase the maximum number of positional arguments allowed in any function or method.\u003c/li\u003e\n\u003cli\u003eReplace usage of \u003ccode\u003epkg_resources\u003c/code\u003e for \u003ccode\u003eimportlib.resources\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/449\"\u003e#449\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd mypy to CI job and type hints for one class. (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/404\"\u003e#404\u003c/a\u003e). Add type hints to \u003ccode\u003epooch/core.py\u003c/code\u003e and create a new \u003ccode\u003etyping\u003c/code\u003e submodule for custom type classes, and add it to the API Reference. Run \u003ccode\u003emypy\u003c/code\u003e on CI to perform type checks, and create new targets in the \u003ccode\u003eMakefile\u003c/code\u003e. Extend the list of dependencies required to run the type checks.\u003c/li\u003e\n\u003cli\u003eAdd pytest \u003ccode\u003efigshare\u003c/code\u003e mark to tests (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/481\"\u003e#481\u003c/a\u003e). Add a pytest \u003ccode\u003efigshare\u003c/code\u003e mark to tests that make requests to Figshare. Such mark allows us to filter tests: use \u003ccode\u003epytest -v -m figshare\u003c/code\u003e to only run tests with that mark, or use \u003ccode\u003epytest -v -m \u0026quot;not figshare\u003c/code\u003e to run all test but the marked ones.\u003c/li\u003e\n\u003cli\u003eSkip Figshare related tests on Actions under MacOS (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/482\"\u003e#482\u003c/a\u003e). Skip tests marked with \u003ccode\u003efigshare\u003c/code\u003e on Actions that use MacOS as runner. Those tests in CI were constantly failing, probably due to too many requests coming from GitHub. Add an optional \u003ccode\u003ePYTEST_ARGS_EXTRA\u003c/code\u003e variable to \u003ccode\u003eMakefile\u003c/code\u003e that can be used to pass extra arguments to \u003ccode\u003epytest\u003c/code\u003e. Skip doctests that download files from Figshare.\u003c/li\u003e\n\u003cli\u003eList requirements to run type checks in new file (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/492\"\u003e#492\u003c/a\u003e). Create a new \u003ccode\u003eenv/requirements-types.txt\u003c/code\u003e file with the list of required packages to run types checks. This file is used by the GitHub Action workflow that automatically runs the type checks. List new requirements for type checks in \u003ccode\u003eenvironment.yml\u003c/code\u003e. Stop ignoring missing imports of \u003ccode\u003exxhash\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e. Ignore type assignment for \u003ccode\u003exxhash\u003c/code\u003e in test file.\u003c/li\u003e\n\u003cli\u003eFix uploads of coverage reports to codecov (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/496\"\u003e#496\u003c/a\u003e). Checkout the repository in the \u003ccode\u003ecodecov-upload\u003c/code\u003e job before uploading the coverage reports to codecov.\u003c/li\u003e\n\u003cli\u003ePin black to v25 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/506\"\u003e#506\u003c/a\u003e). Pin black version used in the \u003ccode\u003eenvironment.yml\u003c/code\u003e and to run style checks on CI to \u003ccode\u003e25.*.*\u003c/code\u003e and \u003ccode\u003e\u0026lt;26.0.0\u003c/code\u003e, respectively. Since we plan to replace black with Ruff for autoformatting, it's better to pin for now than reformat it with latest version.\u003c/li\u003e\n\u003cli\u003eOnly run tests with network access on some CI jobs (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/484\"\u003e#484\u003c/a\u003e). Our CI is continuously hitting some external network providers which is causing some of them (mostly figshare for now) to block our traffic. This means that our CI fails randomly and it's annoying. Only run network tests on jobs with the latest Python and optional dependencies installed to try to mitigate this.\u003c/li\u003e\n\u003cli\u003eUse a SPDX expression for license in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/476\"\u003e#476\u003c/a\u003e). Use a SPDX expression for the license in \u003ccode\u003epyproject.toml\u003c/code\u003e and remove the unneeded license classifier. This removes the warnings we were getting after running \u003ccode\u003emake build\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eTyping :: Typed\u003c/code\u003e trove classifier (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/472\"\u003e#472\u003c/a\u003e). Allow PyPI users know that Pooch supports type hints.\u003c/li\u003e\n\u003cli\u003eAllow to manually trigger test job in Actions (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/475\"\u003e#475\u003c/a\u003e). Add \u003ccode\u003eworkflow_dispatch\u003c/code\u003e as an event trigger for the \u003ccode\u003etest.yml\u003c/code\u003e workflow.\u003c/li\u003e\n\u003cli\u003eStandardize requests made by \u003ccode\u003eDOIDownloaders\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/514\"\u003e#514\u003c/a\u003e). Respect user's decisions when defining the \u003ccode\u003eDOIDownloader\u003c/code\u003e with respect to arguments passed to \u003ccode\u003erequests.get\u003c/code\u003e whenever we call that function. This way, all calls made by \u003ccode\u003eDOIDownloaders\u003c/code\u003e and the repository classes make use of the same arguments, including \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003eheaders\u003c/code\u003e, etc.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a link to the Fatiando Forum in the README (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/461\"\u003e#461\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003escXpand\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/488\"\u003e#488\u003c/a\u003e), \u003ccode\u003exclim\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/445\"\u003e#445\u003c/a\u003e), \u003ccode\u003eCLISOPS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/445\"\u003e#445\u003c/a\u003e), and \u003ccode\u003eSPLASH\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/432\"\u003e#432\u003c/a\u003e) to list of projects using Pooch.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eContributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdam Boesky\u003c/li\u003e\n\u003cli\u003eAntonio Valentino\u003c/li\u003e\n\u003cli\u003eDaniel McCloy\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/fatiando/pooch/blob/main/doc/changes.rst\"\u003epooch's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased on: 2026/01/30\u003c/p\u003e\n\u003cp\u003eDOI: \u003ca href=\"https://doi.org/10.5281/zenodo.18379610\"\u003ehttps://doi.org/10.5281/zenodo.18379610\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBreaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8 (\u003ccode\u003e[#450](https://github.com/fatiando/pooch/issues/450) \u0026lt;https://github.com/fatiando/pooch/pull/450\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExplicitly pass \u003ccode\u003efilter\u003c/code\u003e to \u003ccode\u003eTarFile.extractall\u003c/code\u003e on Python \u0026gt;=3.12 (\u003ccode\u003e[#458](https://github.com/fatiando/pooch/issues/458) \u0026lt;https://github.com/fatiando/pooch/pull/458\u0026gt;\u003c/code\u003e__). Pass a \u003ccode\u003efilter=\u0026quot;data\u0026quot;\u003c/code\u003e argument to \u003ccode\u003eTarFile.extractall\u003c/code\u003e to prevent dangerous security issues. The \u003ccode\u003efilter\u003c/code\u003e argument was added in Python 3.12, so only pass it on versions greater or equal than that. This change matches the default behaviour that will take place since Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix TQDM usage (\u003ccode\u003e[#465](https://github.com/fatiando/pooch/issues/465) \u0026lt;https://github.com/fatiando/pooch/pull/465\u0026gt;\u003c/code\u003e__). Newer versions of tqdm behave differently at a terminal vs in a jupyter notebook. Import from \u003ccode\u003etqdm.auto\u003c/code\u003e instead so that the downloader looks right in either a notebook or the terminal.\u003c/li\u003e\n\u003cli\u003eFix bug in file hashing on FIPS enabled system (\u003ccode\u003e[#511](https://github.com/fatiando/pooch/issues/511) \u0026lt;https://github.com/fatiando/pooch/pull/511\u0026gt;\u003c/code\u003e__). Set \u003ccode\u003euserforsecurity=False\u003c/code\u003e on \u003ccode\u003ehashlib\u003c/code\u003e hashing algorithms to make FIPS enabled systems happy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSet User-Agent in requests headers for DOI downloaders (\u003ccode\u003e[#507](https://github.com/fatiando/pooch/issues/507) \u0026lt;https://github.com/fatiando/pooch/pull/507\u0026gt;\u003c/code\u003e__). Pass a custom User-Agent when making requests through DOI downloaders in order to bypass limit rates imposed by services like Zenodo to block abusive requests. The can now filter requests coming from Pooch from the rest. Add a global \u003ccode\u003eREQUESTS_HEADERS\u003c/code\u003e variable that is used by the \u003ccode\u003edoi_to_url\u003c/code\u003e function (which requires to make a request to doi.org to figure out the service provider). Add a new \u003ccode\u003eheaders\u003c/code\u003e argument to the \u003ccode\u003eDOIDownloader\u003c/code\u003e to specifically pass requests headers. By default it’ll use the Pooch’s default user agent.\u003c/li\u003e\n\u003cli\u003eExtend support for Python 3.13 (\u003ccode\u003e[#451](https://github.com/fatiando/pooch/issues/451) \u0026lt;https://github.com/fatiando/pooch/pull/451\u0026gt;\u003c/code\u003e\u003cstrong\u003e) and Python 3.14 (\u003ccode\u003e[#505](https://github.com/fatiando/pooch/issues/505) \u0026lt;https://github.com/fatiando/pooch/pull/505\u0026gt;\u003c/code\u003e\u003c/strong\u003e).\u003c/li\u003e\n\u003cli\u003eProvide more descriptive errors when DOI request fails (\u003ccode\u003e[#477](https://github.com/fatiando/pooch/issues/477) \u0026lt;https://github.com/fatiando/pooch/pull/477\u0026gt;\u003c/code\u003e__). Raise the \u003ccode\u003erequests\u003c/code\u003e response to provide more informative errors when the status code is between 400 and 600.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMaintenance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd testing data to the package distributions (\u003ccode\u003e[#421](https://github.com/fatiando/pooch/issues/421) \u0026lt;https://github.com/fatiando/pooch/pull/421\u0026gt;\u003c/code\u003e__). The test code \u003ccode\u003epooch/tests\u003c/code\u003e is installed but he data in \u003ccode\u003epooch/tests/data\u003c/code\u003e are not. This makes it impossible to run tests on the installed package. Add the appropriate setuptools configuration to make it happen.\u003c/li\u003e\n\u003cli\u003eMove push to codecov to its own job in Actions (\u003ccode\u003e[#424](https://github.com/fatiando/pooch/issues/424) \u0026lt;https://github.com/fatiando/pooch/pull/424\u0026gt;\u003c/code\u003e__). Remove the push to codecov step from the \u003ccode\u003etest\u003c/code\u003e job into a new job that depends on the test job. Upload the coverage reports as artifacts after testing, and reuse the artifacts in the new job. Upload all coverage reports in a single push to Codecov to minimize the number of hits.\u003c/li\u003e\n\u003cli\u003eIncrease the max positional args allowed by pylint (\u003ccode\u003e[#438](https://github.com/fatiando/pooch/issues/438) \u0026lt;https://github.com/fatiando/pooch/pull/438\u0026gt;\u003c/code\u003e__). Configure \u003ccode\u003epylint\u003c/code\u003e to increase the maximum number of positional arguments allowed in any function or method.\u003c/li\u003e\n\u003cli\u003eReplace usage of \u003ccode\u003epkg_resources\u003c/code\u003e for \u003ccode\u003eimportlib.resources\u003c/code\u003e (\u003ccode\u003e[#449](https://github.com/fatiando/pooch/issues/449) \u0026lt;https://github.com/fatiando/pooch/pull/449\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003cli\u003eAdd mypy to CI job and type hints for one class. (\u003ccode\u003e[#404](https://github.com/fatiando/pooch/issues/404) \u0026lt;https://github.com/fatiando/pooch/pull/404\u0026gt;\u003c/code\u003e__). Add type hints to \u003ccode\u003epooch/core.py\u003c/code\u003e and create a new \u003ccode\u003etyping\u003c/code\u003e submodule for custom type classes, and add it to the API Reference. Run \u003ccode\u003emypy\u003c/code\u003e on CI to perform type checks, and create new targets in the \u003ccode\u003eMakefile\u003c/code\u003e. Extend the list of dependencies required to run the type checks.\u003c/li\u003e\n\u003cli\u003eAdd pytest \u003ccode\u003efigshare\u003c/code\u003e mark to tests (\u003ccode\u003e[#481](https://github.com/fatiando/pooch/issues/481) \u0026lt;https://github.com/fatiando/pooch/pull/481\u0026gt;\u003c/code\u003e__). Add a pytest \u003ccode\u003efigshare\u003c/code\u003e mark to tests that make requests to Figshare. Such mark allows us to filter tests: use \u003ccode\u003epytest -v -m figshare\u003c/code\u003e to only run tests with that mark, or use \u003ccode\u003epytest   -v -m \u0026quot;not figshare\u003c/code\u003e to run all test but the marked ones.\u003c/li\u003e\n\u003cli\u003eSkip Figshare related tests on Actions under MacOS (\u003ccode\u003e[#482](https://github.com/fatiando/pooch/issues/482) \u0026lt;https://github.com/fatiando/pooch/pull/482\u0026gt;\u003c/code\u003e__). Skip tests marked with \u003ccode\u003efigshare\u003c/code\u003e on Actions that use MacOS as runner. Those tests in CI were constantly failing, probably due to too many requests coming from GitHub. Add an optional \u003ccode\u003ePYTEST_ARGS_EXTRA\u003c/code\u003e variable to \u003ccode\u003eMakefile\u003c/code\u003e that can be used to pass extra arguments to \u003ccode\u003epytest\u003c/code\u003e. Skip doctests that download files from Figshare.\u003c/li\u003e\n\u003cli\u003eList requirements to run type checks in new file (\u003ccode\u003e[#492](https://github.com/fatiando/pooch/issues/492) \u0026lt;https://github.com/fatiando/pooch/pull/492\u0026gt;\u003c/code\u003e__). Create a new \u003ccode\u003eenv/requirements-types.txt\u003c/code\u003e file with the list of required packages to run types checks. This file is used by the GitHub Action workflow that automatically runs the type checks. List new requirements for type checks in \u003ccode\u003eenvironment.yml\u003c/code\u003e. Stop ignoring missing imports of \u003ccode\u003exxhash\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e. Ignore type assignment for \u003ccode\u003exxhash\u003c/code\u003e in test file.\u003c/li\u003e\n\u003cli\u003eFix uploads of coverage reports to codecov (\u003ccode\u003e[#496](https://github.com/fatiando/pooch/is...\n\n_Description has been truncated_","html_url":"https://github.com/jurgen-paul/tacticalSuperLegend/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jurgen-paul%2FtacticalSuperLegend/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"}},{"old_version":"1.3.0","new_version":"1.3.1","update_type":"patch","path":null,"pr_created_at":"2026-05-03T17:08:51.000Z","version_change":"1.3.0 → 1.3.1","issue":{"uuid":"4372436362","node_id":"PR_kwDOGujB-87XzRU_","number":248,"state":"closed","title":"deps-dev(deps-dev): bump lark from 1.3.0 to 1.3.1","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":6,"pull_request":true,"closed_at":"2026-05-03T19:03:08.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-03T17:08:51.000Z","updated_at":"2026-05-03T19:03:18.000Z","time_to_close":6857,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps-dev(deps-dev)","packages":[{"name":"lark","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"}],"path":null,"ecosystem":"pip"},"body":"Bumps [lark](https://github.com/lark-parser/lark) from 1.3.0 to 1.3.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\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/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\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=lark\u0026package-manager=pip\u0026previous-version=1.3.0\u0026new-version=1.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/TensorAeroSpace/TensorAeroSpace/pull/248","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/TensorAeroSpace%2FTensorAeroSpace/issues/248","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/248/packages"}},{"old_version":"1.2.2","new_version":"1.3.1","update_type":"minor","path":null,"pr_created_at":"2026-03-01T06:09:35.000Z","version_change":"1.2.2 → 1.3.1","issue":{"uuid":"4006411867","node_id":"PR_kwDORbhszs7HFlRG","number":6,"state":"closed","title":"Bump the minor-update group with 9 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-08T22:16:30.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-01T06:09:35.000Z","updated_at":"2026-03-08T22:16:31.000Z","time_to_close":662815,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":9,"packages":[{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"triton","old_version":"3.1.0","new_version":"3.6.0+git9844da95"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"depyf","old_version":"0.18.0","new_version":"0.20.0","repository_url":"https://github.com/thuml/depyf"},{"name":"sphinx-book-theme","old_version":"1.0.1","new_version":"1.1.4","repository_url":"https://github.com/executablebooks/sphinx-book-theme"},{"name":"sphinx-togglebutton","old_version":"0.3.2","new_version":"0.4.4","repository_url":"https://github.com/executablebooks/sphinx-togglebutton"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 9 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.4.0` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| triton | `3.1.0` | `3.6.0+git9844da95` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.3.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [depyf](https://github.com/thuml/depyf) | `0.18.0` | `0.20.0` |\n| [sphinx-book-theme](https://github.com/executablebooks/sphinx-book-theme) | `1.0.1` | `1.1.4` |\n| [sphinx-togglebutton](https://github.com/executablebooks/sphinx-togglebutton) | `0.3.2` | `0.4.4` |\n\nUpdates `audioread` from 3.0.1 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/fdd0c2e7f20f3a9b9110c454a140108097236268\"\u003e\u003ccode\u003efdd0c2e\u003c/code\u003e\u003c/a\u003e Increment version to 3.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ec7b3bcb29781132b58affd1053d63da64ed9383\"\u003e\u003ccode\u003eec7b3bc\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13 (\u003ca href=\"https://redirect.github.com/beetbox/audioread/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/bfee9a74d6c389a4d60053cf1d1c6af580fae2e6\"\u003e\u003ccode\u003ebfee9a7\u003c/code\u003e\u003c/a\u003e run tests on python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/b671e436cf5c0c6006f190e3561fc680773237be\"\u003e\u003ccode\u003eb671e43\u003c/code\u003e\u003c/a\u003e Add standard-aifc and standard-sunau as dependencies for python 3.13 and above.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ef77a506b641cdeca11b1e782105e29f8f93eb81\"\u003e\u003ccode\u003eef77a50\u003c/code\u003e\u003c/a\u003e Remove legacy url\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/f13b2a2d5d59c683107eb7d9df35c54f1a2c1820\"\u003e\u003ccode\u003ef13b2a2\u003c/code\u003e\u003c/a\u003e Try using proper pypi repo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/84cd1272d498346449c972b046621b3c54d60c08\"\u003e\u003ccode\u003e84cd127\u003c/code\u003e\u003c/a\u003e Increment version to 3.1.0a1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/208562b078770dc373eb9a44554b44d8f1402773\"\u003e\u003ccode\u003e208562b\u003c/code\u003e\u003c/a\u003e Modernize package setup (\u003ca href=\"https://redirect.github.com/beetbox/audioread/issues/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/6da161102578169ce964e05b83cd5c2e8bb8e6c7\"\u003e\u003ccode\u003e6da1611\u003c/code\u003e\u003c/a\u003e Add release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ee7afcf55ae0d760a04db269e2dce6e0adb9cfd4\"\u003e\u003ccode\u003eee7afcf\u003c/code\u003e\u003c/a\u003e Modernize package setup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beetbox/audioread/compare/v3.0.1...v3.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.3.6 to 4.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst\"\u003eplatformdirs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.2 (2026-02-16)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: restructure following Diataxis framework :pr:\u003ccode\u003e448\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs(platforms): fix RST formatting and TOC hierarchy :pr:\u003ccode\u003e447\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.1 (2026-02-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: enhance README, fix issues, and reorganize platforms.rst :pr:\u003ccode\u003e445\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.0 (2026-02-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📚 docs: split usage guide into tutorial, how-to, and reference :pr:\u003ccode\u003e441\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(api): add site_bin_dir property :pr:\u003ccode\u003e443\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(api): add site_applications_dir property :pr:\u003ccode\u003e442\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(unix): use correct runtime dir path for OpenBSD :pr:\u003ccode\u003e440\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs(usage): document use_site_for_root parameter :pr:\u003ccode\u003e439\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.8.0 (2026-02-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs(usage): note that home dir is in stdlib :pr:\u003ccode\u003e431\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(api): add user_applications_dir property :pr:\u003ccode\u003e432\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(api): add user_bin_dir property :pr:\u003ccode\u003e430\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(macos): yield individual site dirs in iter_*_dirs :pr:\u003ccode\u003e429\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(windows): add WIN_PD_OVERRIDE_* env var overrides :pr:\u003ccode\u003e428\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(windows): add PLATFORMDIRS_* env var overrides :pr:\u003ccode\u003e427\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(api): add use_site_for_root parameter :pr:\u003ccode\u003e426\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(api): add site_state_dir for system-wide state :pr:\u003ccode\u003e425\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(api): add site_log_dir and document Store Python sandbox :pr:\u003ccode\u003e424\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs(windows): document Store Python sandbox path behavior :pr:\u003ccode\u003e423\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.7.1 (2026-02-13)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(windows): avoid FileNotFoundError in sandboxed environments :pr:\u003ccode\u003e422\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.7.0 (2026-02-12)\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/tox-dev/platformdirs/commit/c945a28a2cd2ae34154540d144e7671ed80b1c10\"\u003e\u003ccode\u003ec945a28\u003c/code\u003e\u003c/a\u003e feat: improve homebrew path detection (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/9f616e954ee35621a75843fa40180cbd6fea2670\"\u003e\u003ccode\u003e9f616e9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/5720f26595056e11516d1167185ffde135e0aa55\"\u003e\u003ccode\u003e5720f26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/848924dfbec662829225a4a1108e1a818539304a\"\u003e\u003ccode\u003e848924d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/df2e678930d48ac0cb0b019da78a069dfbeae579\"\u003e\u003ccode\u003edf2e678\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/009a3f81879f356a7af0923c2ba443756b552e1c\"\u003e\u003ccode\u003e009a3f8\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/3d194ee7ef7ce2a021a2b5fbf77bbddd171ca9a1\"\u003e\u003ccode\u003e3d194ee\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/6046533d719a8871f5f8fc4fc99c01a14b282853\"\u003e\u003ccode\u003e6046533\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/88389cef8fce1da42858a621770ce4dee8f739f9\"\u003e\u003ccode\u003e88389ce\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/82763ff0c244c7ca7b4eaa4b4336be224b385389\"\u003e\u003ccode\u003e82763ff\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pooch` from 1.8.2 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fatiando/pooch/releases\"\u003epooch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased on: 2026/01/30\u003c/p\u003e\n\u003cp\u003eDOI: \u003ca href=\"https://doi.org/10.5281/zenodo.18379610\"\u003ehttps://doi.org/10.5281/zenodo.18379610\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBreaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/450\"\u003e#450\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExplicitly pass \u003ccode\u003efilter\u003c/code\u003e to \u003ccode\u003eTarFile.extractall\u003c/code\u003e on Python \u0026gt;=3.12 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/458\"\u003e#458\u003c/a\u003e). Pass a \u003ccode\u003efilter=\u0026quot;data\u0026quot;\u003c/code\u003e argument to \u003ccode\u003eTarFile.extractall\u003c/code\u003e to prevent dangerous security issues. The \u003ccode\u003efilter\u003c/code\u003e argument was added in Python 3.12, so only pass it on versions greater or equal than that. This change matches the default behaviour that will take place since Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix TQDM usage (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/465\"\u003e#465\u003c/a\u003e). Newer versions of tqdm behave differently at a terminal vs in a jupyter notebook. Import from \u003ccode\u003etqdm.auto\u003c/code\u003e instead so that the downloader looks right in either a notebook or the terminal.\u003c/li\u003e\n\u003cli\u003eFix bug in file hashing on FIPS enabled system (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/511\"\u003e#511\u003c/a\u003e). Set \u003ccode\u003euserforsecurity=False\u003c/code\u003e on \u003ccode\u003ehashlib\u003c/code\u003e hashing algorithms to make FIPS enabled systems happy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSet User-Agent in requests headers for DOI downloaders (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/507\"\u003e#507\u003c/a\u003e). Pass a custom User-Agent when making requests through DOI downloaders in order to bypass limit rates imposed by services like Zenodo to block abusive requests. The can now filter requests coming from Pooch from the rest. Add a global \u003ccode\u003eREQUESTS_HEADERS\u003c/code\u003e variable that is used by the \u003ccode\u003edoi_to_url\u003c/code\u003e function (which requires to make a request to doi.org to figure out the service provider). Add a new \u003ccode\u003eheaders\u003c/code\u003e argument to the \u003ccode\u003eDOIDownloader\u003c/code\u003e to specifically pass requests headers. By default it'll use the Pooch's default user agent.\u003c/li\u003e\n\u003cli\u003eExtend support for Python 3.13 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/451\"\u003e#451\u003c/a\u003e) and Python 3.14 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/505\"\u003e#505\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eProvide more descriptive errors when DOI request fails (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/477\"\u003e#477\u003c/a\u003e). Raise the \u003ccode\u003erequests\u003c/code\u003e response to provide more informative errors when the status code is between 400 and 600.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMaintenance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd testing data to the package distributions (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/421\"\u003e#421\u003c/a\u003e). The test code \u003ccode\u003epooch/tests\u003c/code\u003e is installed but he data in \u003ccode\u003epooch/tests/data\u003c/code\u003e are not. This makes it impossible to run tests on the installed package. Add the appropriate setuptools configuration to make it happen.\u003c/li\u003e\n\u003cli\u003eMove push to codecov to its own job in Actions (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/424\"\u003e#424\u003c/a\u003e). Remove the push to codecov step from the \u003ccode\u003etest\u003c/code\u003e job into a new job that depends on the test job. Upload the coverage reports as artifacts after testing, and reuse the artifacts in the new job. Upload all coverage reports in a single push to Codecov to minimize the number of hits.\u003c/li\u003e\n\u003cli\u003eIncrease the max positional args allowed by pylint (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/438\"\u003e#438\u003c/a\u003e). Configure \u003ccode\u003epylint\u003c/code\u003e to increase the maximum number of positional arguments allowed in any function or method.\u003c/li\u003e\n\u003cli\u003eReplace usage of \u003ccode\u003epkg_resources\u003c/code\u003e for \u003ccode\u003eimportlib.resources\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/449\"\u003e#449\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd mypy to CI job and type hints for one class. (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/404\"\u003e#404\u003c/a\u003e). Add type hints to \u003ccode\u003epooch/core.py\u003c/code\u003e and create a new \u003ccode\u003etyping\u003c/code\u003e submodule for custom type classes, and add it to the API Reference. Run \u003ccode\u003emypy\u003c/code\u003e on CI to perform type checks, and create new targets in the \u003ccode\u003eMakefile\u003c/code\u003e. Extend the list of dependencies required to run the type checks.\u003c/li\u003e\n\u003cli\u003eAdd pytest \u003ccode\u003efigshare\u003c/code\u003e mark to tests (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/481\"\u003e#481\u003c/a\u003e). Add a pytest \u003ccode\u003efigshare\u003c/code\u003e mark to tests that make requests to Figshare. Such mark allows us to filter tests: use \u003ccode\u003epytest -v -m figshare\u003c/code\u003e to only run tests with that mark, or use \u003ccode\u003epytest -v -m \u0026quot;not figshare\u003c/code\u003e to run all test but the marked ones.\u003c/li\u003e\n\u003cli\u003eSkip Figshare related tests on Actions under MacOS (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/482\"\u003e#482\u003c/a\u003e). Skip tests marked with \u003ccode\u003efigshare\u003c/code\u003e on Actions that use MacOS as runner. Those tests in CI were constantly failing, probably due to too many requests coming from GitHub. Add an optional \u003ccode\u003ePYTEST_ARGS_EXTRA\u003c/code\u003e variable to \u003ccode\u003eMakefile\u003c/code\u003e that can be used to pass extra arguments to \u003ccode\u003epytest\u003c/code\u003e. Skip doctests that download files from Figshare.\u003c/li\u003e\n\u003cli\u003eList requirements to run type checks in new file (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/492\"\u003e#492\u003c/a\u003e). Create a new \u003ccode\u003eenv/requirements-types.txt\u003c/code\u003e file with the list of required packages to run types checks. This file is used by the GitHub Action workflow that automatically runs the type checks. List new requirements for type checks in \u003ccode\u003eenvironment.yml\u003c/code\u003e. Stop ignoring missing imports of \u003ccode\u003exxhash\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e. Ignore type assignment for \u003ccode\u003exxhash\u003c/code\u003e in test file.\u003c/li\u003e\n\u003cli\u003eFix uploads of coverage reports to codecov (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/496\"\u003e#496\u003c/a\u003e). Checkout the repository in the \u003ccode\u003ecodecov-upload\u003c/code\u003e job before uploading the coverage reports to codecov.\u003c/li\u003e\n\u003cli\u003ePin black to v25 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/506\"\u003e#506\u003c/a\u003e). Pin black version used in the \u003ccode\u003eenvironment.yml\u003c/code\u003e and to run style checks on CI to \u003ccode\u003e25.*.*\u003c/code\u003e and \u003ccode\u003e\u0026lt;26.0.0\u003c/code\u003e, respectively. Since we plan to replace black with Ruff for autoformatting, it's better to pin for now than reformat it with latest version.\u003c/li\u003e\n\u003cli\u003eOnly run tests with network access on some CI jobs (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/484\"\u003e#484\u003c/a\u003e). Our CI is continuously hitting some external network providers which is causing some of them (mostly figshare for now) to block our traffic. This means that our CI fails randomly and it's annoying. Only run network tests on jobs with the latest Python and optional dependencies installed to try to mitigate this.\u003c/li\u003e\n\u003cli\u003eUse a SPDX expression for license in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/476\"\u003e#476\u003c/a\u003e). Use a SPDX expression for the license in \u003ccode\u003epyproject.toml\u003c/code\u003e and remove the unneeded license classifier. This removes the warnings we were getting after running \u003ccode\u003emake build\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eTyping :: Typed\u003c/code\u003e trove classifier (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/472\"\u003e#472\u003c/a\u003e). Allow PyPI users know that Pooch supports type hints.\u003c/li\u003e\n\u003cli\u003eAllow to manually trigger test job in Actions (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/475\"\u003e#475\u003c/a\u003e). Add \u003ccode\u003eworkflow_dispatch\u003c/code\u003e as an event trigger for the \u003ccode\u003etest.yml\u003c/code\u003e workflow.\u003c/li\u003e\n\u003cli\u003eStandardize requests made by \u003ccode\u003eDOIDownloaders\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/514\"\u003e#514\u003c/a\u003e). Respect user's decisions when defining the \u003ccode\u003eDOIDownloader\u003c/code\u003e with respect to arguments passed to \u003ccode\u003erequests.get\u003c/code\u003e whenever we call that function. This way, all calls made by \u003ccode\u003eDOIDownloaders\u003c/code\u003e and the repository classes make use of the same arguments, including \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003eheaders\u003c/code\u003e, etc.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a link to the Fatiando Forum in the README (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/461\"\u003e#461\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003escXpand\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/488\"\u003e#488\u003c/a\u003e), \u003ccode\u003exclim\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/445\"\u003e#445\u003c/a\u003e), \u003ccode\u003eCLISOPS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/445\"\u003e#445\u003c/a\u003e), and \u003ccode\u003eSPLASH\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/pull/432\"\u003e#432\u003c/a\u003e) to list of projects using Pooch.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eContributors:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdam Boesky\u003c/li\u003e\n\u003cli\u003eAntonio Valentino\u003c/li\u003e\n\u003cli\u003eDaniel McCloy\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/fatiando/pooch/blob/main/doc/changes.rst\"\u003epooch's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased on: 2026/01/30\u003c/p\u003e\n\u003cp\u003eDOI: \u003ca href=\"https://doi.org/10.5281/zenodo.18379610\"\u003ehttps://doi.org/10.5281/zenodo.18379610\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBreaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8 (\u003ccode\u003e[#450](https://github.com/fatiando/pooch/issues/450) \u0026lt;https://github.com/fatiando/pooch/pull/450\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExplicitly pass \u003ccode\u003efilter\u003c/code\u003e to \u003ccode\u003eTarFile.extractall\u003c/code\u003e on Python \u0026gt;=3.12 (\u003ccode\u003e[#458](https://github.com/fatiando/pooch/issues/458) \u0026lt;https://github.com/fatiando/pooch/pull/458\u0026gt;\u003c/code\u003e__). Pass a \u003ccode\u003efilter=\u0026quot;data\u0026quot;\u003c/code\u003e argument to \u003ccode\u003eTarFile.extractall\u003c/code\u003e to prevent dangerous security issues. The \u003ccode\u003efilter\u003c/code\u003e argument was added in Python 3.12, so only pass it on versions greater or equal than that. This change matches the default behaviour that will take place since Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix TQDM usage (\u003ccode\u003e[#465](https://github.com/fatiando/pooch/issues/465) \u0026lt;https://github.com/fatiando/pooch/pull/465\u0026gt;\u003c/code\u003e__). Newer versions of tqdm behave differently at a terminal vs in a jupyter notebook. Import from \u003ccode\u003etqdm.auto\u003c/code\u003e instead so that the downloader looks right in either a notebook or the terminal.\u003c/li\u003e\n\u003cli\u003eFix bug in file hashing on FIPS enabled system (\u003ccode\u003e[#511](https://github.com/fatiando/pooch/issues/511) \u0026lt;https://github.com/fatiando/pooch/pull/511\u0026gt;\u003c/code\u003e__). Set \u003ccode\u003euserforsecurity=False\u003c/code\u003e on \u003ccode\u003ehashlib\u003c/code\u003e hashing algorithms to make FIPS enabled systems happy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSet User-Agent in requests headers for DOI downloaders (\u003ccode\u003e[#507](https://github.com/fatiando/pooch/issues/507) \u0026lt;https://github.com/fatiando/pooch/pull/507\u0026gt;\u003c/code\u003e__). Pass a custom User-Agent when making requests through DOI downloaders in order to bypass limit rates imposed by services like Zenodo to block abusive requests. The can now filter requests coming from Pooch from the rest. Add a global \u003ccode\u003eREQUESTS_HEADERS\u003c/code\u003e variable that is used by the \u003ccode\u003edoi_to_url\u003c/code\u003e function (which requires to make a request to doi.org to figure out the service provider). Add a new \u003ccode\u003eheaders\u003c/code\u003e argument to the \u003ccode\u003eDOIDownloader\u003c/code\u003e to specifically pass requests headers. By default it’ll use the Pooch’s default user agent.\u003c/li\u003e\n\u003cli\u003eExtend support for Python 3.13 (\u003ccode\u003e[#451](https://github.com/fatiando/pooch/issues/451) \u0026lt;https://github.com/fatiando/pooch/pull/451\u0026gt;\u003c/code\u003e\u003cstrong\u003e) and Python 3.14 (\u003ccode\u003e[#505](https://github.com/fatiando/pooch/issues/505) \u0026lt;https://github.com/fatiando/pooch/pull/505\u0026gt;\u003c/code\u003e\u003c/strong\u003e).\u003c/li\u003e\n\u003cli\u003eProvide more descriptive errors when DOI request fails (\u003ccode\u003e[#477](https://github.com/fatiando/pooch/issues/477) \u0026lt;https://github.com/fatiando/pooch/pull/477\u0026gt;\u003c/code\u003e__). Raise the \u003ccode\u003erequests\u003c/code\u003e response to provide more informative errors when the status code is between 400 and 600.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMaintenance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd testing data to the package distributions (\u003ccode\u003e[#421](https://github.com/fatiando/pooch/issues/421) \u0026lt;https://github.com/fatiando/pooch/pull/421\u0026gt;\u003c/code\u003e__). The test code \u003ccode\u003epooch/tests\u003c/code\u003e is installed but he data in \u003ccode\u003epooch/tests/data\u003c/code\u003e are not. This makes it impossible to run tests on the installed package. Add the appropriate setuptools configuration to make it happen.\u003c/li\u003e\n\u003cli\u003eMove push to codecov to its own job in Actions (\u003ccode\u003e[#424](https://github.com/fatiando/pooch/issues/424) \u0026lt;https://github.com/fatiando/pooch/pull/424\u0026gt;\u003c/code\u003e__). Remove the push to codecov step from the \u003ccode\u003etest\u003c/code\u003e job into a new job that depends on the test job. Upload the coverage reports as artifacts after testing, and reuse the artifacts in the new job. Upload all coverage reports in a single push to Codecov to minimize the number of hits.\u003c/li\u003e\n\u003cli\u003eIncrease the max positional args allowed by pylint (\u003ccode\u003e[#438](https://github.com/fatiando/pooch/issues/438) \u0026lt;https://github.com/fatiando/pooch/pull/438\u0026gt;\u003c/code\u003e__). Configure \u003ccode\u003epylint\u003c/code\u003e to increase the maximum number of positional arguments allowed in any function or method.\u003c/li\u003e\n\u003cli\u003eReplace usage of \u003ccode\u003epkg_resources\u003c/code\u003e for \u003ccode\u003eimportlib.resources\u003c/code\u003e (\u003ccode\u003e[#449](https://github.com/fatiando/pooch/issues/449) \u0026lt;https://github.com/fatiando/pooch/pull/449\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003cli\u003eAdd mypy to CI job and type hints for one class. (\u003ccode\u003e[#404](https://github.com/fatiando/pooch/issues/404) \u0026lt;https://github.com/fatiando/pooch/pull/404\u0026gt;\u003c/code\u003e__). Add type hints to \u003ccode\u003epooch/core.py\u003c/code\u003e and create a new \u003ccode\u003etyping\u003c/code\u003e submodule for custom type classes, and add it to the API Reference. Run \u003ccode\u003emypy\u003c/code\u003e on CI to perform type checks, and create new targets in the \u003ccode\u003eMakefile\u003c/code\u003e. Extend the list of dependencies required to run the type checks.\u003c/li\u003e\n\u003cli\u003eAdd pytest \u003ccode\u003efigshare\u003c/code\u003e mark to tests (\u003ccode\u003e[#481](https://github.com/fatiando/pooch/issues/481) \u0026lt;https://github.com/fatiando/pooch/pull/481\u0026gt;\u003c/code\u003e__). Add a pytest \u003ccode\u003efigshare\u003c/code\u003e mark to tests that make requests to Figshare. Such mark allows us to filter tests: use \u003ccode\u003epytest -v -m figshare\u003c/code\u003e to only run tests with that mark, or use \u003ccode\u003epytest   -v -m \u0026quot;not figshare\u003c/code\u003e to run all test but the marked ones.\u003c/li\u003e\n\u003cli\u003eSkip Figshare related tests on Actions under MacOS (\u003ccode\u003e[#482](https://github.com/fatiando/pooch/issues/482) \u0026lt;https://github.com/fatiando/pooch/pull/482\u0026gt;\u003c/code\u003e__). Skip tests marked with \u003ccode\u003efigshare\u003c/code\u003e on Actions that use MacOS as runner. Those tests in CI were constantly failing, probably due to too many requests coming from GitHub. Add an optional \u003ccode\u003ePYTEST_ARGS_EXTRA\u003c/code\u003e variable to \u003ccode\u003eMakefile\u003c/code\u003e that can be used to pass extra arguments to \u003ccode\u003epytest\u003c/code\u003e. Skip doctests that download files from Figshare.\u003c/li\u003e\n\u003cli\u003eList requirements to run type checks in new file (\u003ccode\u003e[#492](https://github.com/fatiando/pooch/issues/492) \u0026lt;https://github.com/fatiando/pooch/pull/492\u0026gt;\u003c/code\u003e__). Create a new \u003ccode\u003eenv/requirements-types.txt\u003c/code\u003e file with the list of required packages to run types checks. This file is used by the GitHub Action workflow that automatically runs the type checks. List new requirements for type checks in \u003ccode\u003eenvironment.yml\u003c/code\u003e. Stop ignoring missing imports of \u003ccode\u003exxhash\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e. Ignore type assignment for \u003ccode\u003exxhash\u003c/code\u003e in test file.\u003c/li\u003e\n\u003cli\u003eFix uploads of coverage reports to codecov (\u003ccode\u003e[#496](https://github.com/fatiando/pooch/issues/496) \u0026lt;https://github.com/fatiando/pooch/pull/496\u0026gt;\u003c/code\u003e__). Checkout the repository in the \u003ccode\u003ecodecov-upload\u003c/code\u003e job before uploading the coverage reports to codecov.\u003c/li\u003e\n\u003cli\u003ePin black to v25 (\u003ccode\u003e[#506](https://github.com/fatiando/pooch/issues/506) \u0026lt;https://github.com/fatiando/pooch/pull/506\u0026gt;\u003c/code\u003e__). Pin black version used in the \u003ccode\u003eenvironment.yml\u003c/code\u003e and to run style checks on CI to \u003ccode\u003e25.*.*\u003c/code\u003e and \u003ccode\u003e\u0026lt;26.0.0\u003c/code\u003e, respectively. Since we plan to replace black with Ruff for autoformatting, it’s better to pin for now than reformat it with latest version.\u003c/li\u003e\n\u003cli\u003eOnly run tests with network access on some CI jobs (\u003ccode\u003e[#484](https://github.com/fatiando/pooch/issues/484) \u0026lt;https://github.com/fatiando/pooch/pull/484\u0026gt;\u003c/code\u003e__). Our CI is continuously hitting some external network providers which is causing some of them (mostly figshare for now) to block our traffic. This means that our CI fails randomly and it’s annoying. Only run network tests on jobs with the latest Python and optional dependencies installed to try to mitigate this.\u003c/li\u003e\n\u003cli\u003eUse a SPDX expression for license in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ccode\u003e[#476](https://github.com/fatiando/pooch/issues/476) \u0026lt;https://github.com/fatiando/pooch/pull/476\u0026gt;\u003c/code\u003e__). Use a SPDX expression for the license in \u003ccode\u003epyproject.toml\u003c/code\u003e and remove the unneeded license classifier. This removes the warnings we were getting after running \u003ccode\u003emake build\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eTyping :: Typed\u003c/code\u003e trove classifier (\u003ccode\u003e[#472](https://github.com/fatiando/pooch/issues/472) \u0026lt;https://github.com/fatiando/pooch/pull/472\u0026gt;\u003c/code\u003e__). Allow PyPI users know that Pooch supports type hints.\u003c/li\u003e\n\u003cli\u003eAllow to manually trigger test job in Actions (\u003ccode\u003e[#475](https://github.com/fatiando/pooch/issues/475) \u0026lt;https://github.com/fatiando/pooch/pull/475\u0026gt;\u003c/code\u003e__). Add \u003ccode\u003eworkflow_dispatch\u003c/code\u003e as an event trigger for the \u003ccode\u003etest.yml\u003c/code\u003e workflow.\u003c/li\u003e\n\u003cli\u003eStandardize requests made by \u003ccode\u003eDOIDownloaders\u003c/code\u003e (\u003ccode\u003e[#514](https://github.com/fatiando/pooch/issues/514) \u0026lt;https://github.com/fatiando/pooch/pull/514\u0026gt;\u003c/code\u003e__). Respect user’s decisions when defining the \u003ccode\u003eDOIDownloader\u003c/code\u003e with respect to arguments passed to \u003ccode\u003erequests.get\u003c/code\u003e whenever we call that function. This way, all calls made by \u003ccode\u003eDOIDownloaders\u003c/code\u003e and the repository classes make use of the same arguments, including \u003ccode\u003etimeout\u003c/code\u003e, \u003ccode\u003eheaders\u003c/code\u003e, etc.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a link to the Fatiando Forum in the README (\u003ccode\u003e[#461](https://github.com/fatiando/pooch/issues/461) \u0026lt;https://github.com/fatiando/pooch/pull/461\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003escXpand\u003c/code\u003e (\u003ccode\u003e[#488](https://github.com/fatiando/pooch/issues/488) \u0026lt;https://github.com/fatiando/pooch/pull/488\u0026gt;\u003c/code\u003e\u003cstrong\u003e), \u003ccode\u003exclim\u003c/code\u003e (\u003ccode\u003e[#445](https://github.com/fatiando/pooch/issues/445) \u0026lt;https://github.com/fatiando/pooch/pull/445\u0026gt;\u003c/code\u003e\u003c/strong\u003e), \u003ccode\u003eCLISOPS\u003c/code\u003e (\u003ccode\u003e[#445](https://github.com/fatiando/pooch/issues/445) \u0026lt;https://github.com/fatiando/pooch/pull/445\u0026gt;\u003c/code\u003e\u003cstrong\u003e), and \u003ccode\u003eSPLASH\u003c/code\u003e (\u003ccode\u003e[#432](https://github.com/fatiando/pooch/issues/432) \u0026lt;https://github.com/fatiando/pooch/pull/432\u0026gt;\u003c/code\u003e\u003c/strong\u003e) to list of projects using Pooch.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release contains contributions from:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdam Boesky\u003c/li\u003e\n\u003cli\u003eAntonio Valentino\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/6aab6f90569774d335edb7197729005c9e99f7c1\"\u003e\u003ccode\u003e6aab6f9\u003c/code\u003e\u003c/a\u003e Add changelog for Pooch v1.9.0 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/2932f3407131697171b007c4a97f3586250c411f\"\u003e\u003ccode\u003e2932f34\u003c/code\u003e\u003c/a\u003e Standardize requests made by \u003ccode\u003eDOIDownloaders\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/514\"\u003e#514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/d2b547edcb3d10d68451e8951d6aceaeb502302f\"\u003e\u003ccode\u003ed2b547e\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 6 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/e33707dce81f77a23dfecb457b0f796bdbb4dc3a\"\u003e\u003ccode\u003ee33707d\u003c/code\u003e\u003c/a\u003e Update Santi's affiliation in AUTHORS.md (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/e7e59e91f5009d05d8184bf325bed963f724ca36\"\u003e\u003ccode\u003ee7e59e9\u003c/code\u003e\u003c/a\u003e Fix bug in file hashing on FIPS enabled system (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/27e3ab2a686040554068a1a08a433588c6524aed\"\u003e\u003ccode\u003e27e3ab2\u003c/code\u003e\u003c/a\u003e Fix TQDM usage (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/465\"\u003e#465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/d9a82e6c7b5ca39b2e4c9207fd4da3cd9552c74e\"\u003e\u003ccode\u003ed9a82e6\u003c/code\u003e\u003c/a\u003e Allow to manually trigger test job in Actions (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/475\"\u003e#475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/00c6cea6328c9c16c32bba20c01dc02e83339da5\"\u003e\u003ccode\u003e00c6cea\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eTyping :: Typed\u003c/code\u003e trove classifier (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/472\"\u003e#472\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/f4d32da438a18266a7431ed19d7f6f44c0d28cb0\"\u003e\u003ccode\u003ef4d32da\u003c/code\u003e\u003c/a\u003e Use a SPDX expression for license in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fatiando/pooch/commit/cddaac9db356d62703f5c5dfcbccc6d4006df5e6\"\u003e\u003ccode\u003ecddaac9\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 7 (\u003ca href=\"https://redirect.github.com/fatiando/pooch/issues/478\"\u003e#478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fatiando/pooch/compare/v1.8.2...v1.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `triton` from 3.1.0 to 3.6.0+git9844da95\n\nUpdates `pre-commit` from 4.0.1 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\u003ch2\u003epre-commit v4.2.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFor \u003ccode\u003elanguage: python\u003c/code\u003e first attempt a versioned python executable for the default language version before consulting a potentially unversioned \u003ccode\u003esys.executable\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3430\"\u003e#3430\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle error during conflict detection when a file is named \u0026quot;HEAD\u0026quot;\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3425\"\u003e#3425\u003c/a\u003e PR by \u003ca href=\"https://github.com/tusharsadhwani\"\u003e\u003ccode\u003e@​tusharsadhwani\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.1.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: julia\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3348\"\u003e#3348\u003c/a\u003e PR by \u003ca href=\"https://github.com/fredrikekre\"\u003e\u003ccode\u003e@​fredrikekre\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/2689\"\u003e#2689\u003c/a\u003e issue \u003ca href=\"https://github.com/jmuchovej\"\u003e\u003ccode\u003e@​jmuchovej\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable automatic toolchain switching for \u003ccode\u003elanguage: golang\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3304\"\u003e#3304\u003c/a\u003e PR by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3300\"\u003e#3300\u003c/a\u003e issue by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3149\"\u003e#3149\u003c/a\u003e issue by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: r\u003c/code\u003e installation when initiated by RStudio.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3389\"\u003e#3389\u003c/a\u003e PR by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3385\"\u003e#3385\u003c/a\u003e issue by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\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\u003ch1\u003e4.2.0 - 2025-03-18\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFor \u003ccode\u003elanguage: python\u003c/code\u003e first attempt a versioned python executable for\nthe default language version before consulting a potentially unversioned\n\u003ccode\u003esys.executable\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3430\"\u003e#3430\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle error during conflict detection when a file is named \u0026quot;HEAD\u0026quot;\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3425\"\u003e#3425\u003c/a\u003e PR by \u003ca href=\"https://github.com/tusharsadhwani\"\u003e\u003ccode\u003e@​tusharsadhwani\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.1.0 - 2025-01-20\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: julia\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3348\"\u003e#3348\u003c/a\u003e PR by \u003ca href=\"https://github.com/fredrikekre\"\u003e\u003ccode\u003e@​fredrikekre\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/2689\"\u003e#2689\u003c/a\u003e issue \u003ca href=\"https://github.com/jmuchovej\"\u003e\u003ccode\u003e@​jmuchovej\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable automatic toolchain switching for \u003ccode\u003elanguage: golang\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3304\"\u003e#3304\u003c/a\u003e PR by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3300\"\u003e#3300\u003c/a\u003e issue by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3149\"\u003e#3149\u003c/a\u003e issue by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: r\u003c/code\u003e installation when initiated by RStudio.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3389\"\u003e#3389\u003c/a\u003e PR by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3385\"\u003e#3385\u003c/a\u003e issue by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\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.0.1...v4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `depyf` from 0.18.0 to 0.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/thuml/depyf/releases\"\u003edepyf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.19.0 release with recent improvements\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd device to imports by \u003ca href=\"https://github.com/ProExpertProg\"\u003e\u003ccode\u003e@​ProExpertProg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/82\"\u003ethuml/depyf#82\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing default argument values in \u003ccode\u003epatched_load_by_key_path\u003c/code\u003e by \u003ca href=\"https://github.com/nopperl\"\u003e\u003ccode\u003e@​nopperl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/81\"\u003ethuml/depyf#81\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate test files by \u003ca href=\"https://github.com/youkaichao\"\u003e\u003ccode\u003e@​youkaichao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/83\"\u003ethuml/depyf#83\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy instruction by \u003ca href=\"https://github.com/youkaichao\"\u003e\u003ccode\u003e@​youkaichao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/84\"\u003ethuml/depyf#84\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/ProExpertProg\"\u003e\u003ccode\u003e@​ProExpertProg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/82\"\u003ethuml/depyf#82\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nopperl\"\u003e\u003ccode\u003e@​nopperl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/81\"\u003ethuml/depyf#81\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/thuml/depyf/compare/v0.18.0...v0.19.0\"\u003ehttps://github.com/thuml/depyf/compare/v0.18.0...v0.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/thuml/depyf/commit/b67e16787e8c66324e114b4f2c6024438385b242\"\u003e\u003ccode\u003eb67e167\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/91ea66d5feca12392ba9c45a08094d948514343d\"\u003e\u003ccode\u003e91ea66d\u003c/code\u003e\u003c/a\u003e update test files (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/88\"\u003e#88\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/4fd2d58b0f6361f4c39aaf26e98b94049b7e6dd6\"\u003e\u003ccode\u003e4fd2d58\u003c/code\u003e\u003c/a\u003e bugfix for list extend with argval != 1 and add DEPYF_REMOVE_TEMP env var (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/87\"\u003e#87\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/2612c16584d7360a511044a313eac02e15f46831\"\u003e\u003ccode\u003e2612c16\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/e379286a302abde2808d249ba186bbe7a8235cc0\"\u003e\u003ccode\u003ee379286\u003c/code\u003e\u003c/a\u003e fix copy instruction (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/5cde94f8fe9446c56ccb19df71dc9f887d4f948a\"\u003e\u003ccode\u003e5cde94f\u003c/code\u003e\u003c/a\u003e update test files (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/83\"\u003e#83\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/461af54b38e07df88c33f5da81970bfc82eaa325\"\u003e\u003ccode\u003e461af54\u003c/code\u003e\u003c/a\u003e Add missing default argument values in \u003ccode\u003epatched_load_by_key_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/81\"\u003e#81\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/3c95e7ac95e133bce7ef8bf6f609dda2e8f331bf\"\u003e\u003ccode\u003e3c95e7a\u003c/code\u003e\u003c/a\u003e Add device to imports (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/thuml/depyf/compare/v0.18.0...v0.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-book-theme` from 1.0.1 to 1.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/releases\"\u003esphinx-book-theme's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.4 - 2025-02-20\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.1.3...d3552e2524f4f8b602e9c161a5e765672d1367d1\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eENH: make the generated documentation more reproducible \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/883\"\u003e#883\u003c/a\u003e (\u003ca href=\"https://github.com/mitya57\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: make the generated gettext files reproducible \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/882\"\u003e#882\u003c/a\u003e (\u003ca href=\"https://github.com/mitya57\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: bump version for release :rocket: \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/843\"\u003e#843\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: edited russian translate \u0026quot;By\u0026quot; \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/806\"\u003e#806\u003c/a\u003e (\u003ca href=\"https://github.com/askras\"\u003e\u003ccode\u003e@​askras\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: use raw strings for math equations \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/881\"\u003e#881\u003c/a\u003e (\u003ca href=\"https://github.com/mitya57\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFIX: exclude command prompts when using copy button \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/867\"\u003e#867\u003c/a\u003e (\u003ca href=\"https://github.com/stevepiercy\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMAINT: pin PST theme version for now \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/898\"\u003e#898\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: adding explicit sphinx config into RTD config \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/897\"\u003e#897\u003c/a\u003e (\u003ca href=\"https://github.com/bsipocz\"\u003e\u003ccode\u003e@​bsipocz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: update dependabot config \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/875\"\u003e#875\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: pin pydata sphinx theme and update regression tests \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/862\"\u003e#862\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: upgrade sass \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/861\"\u003e#861\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: really drop python\u0026lt;=3.8 support \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/844\"\u003e#844\u003c/a\u003e (\u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDOCS: fix links in documentation \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/884\"\u003e#884\u003c/a\u003e (\u003ca href=\"https://github.com/choldgraf\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOCS: automatically update copyright year \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/866\"\u003e#866\u003c/a\u003e (\u003ca href=\"https://github.com/stevepiercy\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOCS: correct the option \u003ccode\u003ehtml_source_suffix\u003c/code\u003e to \u003ccode\u003ehtml_sourcelink_suffix\u003c/code\u003e \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/859\"\u003e#859\u003c/a\u003e (\u003ca href=\"https://github.com/Snoopy1866\"\u003e\u003ccode\u003e@​Snoopy1866\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther merged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild(deps-dev): Bump express from 4.18.2 to 4.21.2 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/886\"\u003e#886\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/885\"\u003e#885\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/880\"\u003e#880\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps-dev): Bump dedent from 0.7.0 to 1.5.3 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/878\"\u003e#878\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps-dev): Bump sass from 1.80.4 to 1.81.0 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/877\"\u003e#877\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump the actions group with 3 updates \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/876\"\u003e#876\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps-dev): Bump webpack from 5.92.0 to 5.96.1 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/871\"\u003e#871\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/860\"\u003e#860\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.10.0 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/857\"\u003e#857\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/808\"\u003e#808\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/graphs/contributors?from=2024-06-12\u0026amp;to=2025-02-20\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aagoose77+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aaskras+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​askras\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Absipocz+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​bsipocz\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Acholdgraf+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Adependabot+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Adylanh724+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dylanh724\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Akloczek+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Amitya57+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Anilsleh+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​nilsleh\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Apre-commit-ci+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3ASnoopy1866+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Snoopy1866\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Astevepiercy+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Awelcome+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​welcome\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/blob/master/CHANGELOG.md\"\u003esphinx-book-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev1.1.2 -- 2024-02-13\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.1.1...3da24da74f6042599fe6c9e2d612f5cbdef42280\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eENH: bump version \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/818\"\u003e#818\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: correct event-handler signature \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/817\"\u003e#817\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/graphs/contributors?from=2024-02-13\u0026amp;to=2024-02-13\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aagoose77+updated%3A2024-02-13..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1 -- 2024-02-13\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.1.0...9335ab99b0bc77b826cb2c5afcef3432f14e8780\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eENH: bump version for 1.1.1 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/815\"\u003e#815\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: use \u003ccode\u003econfig-inited\u003c/code\u003e event to register config \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/814\"\u003e#814\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther merged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild(deps): Bump actions/setup-python from 4 to 5 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/803\"\u003e#803\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/801\"\u003e#801\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/graphs/contributors?from=2023-12-19\u0026amp;to=2024-02-13\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aagoose77+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Acholdgraf+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Adependabot+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aghisvail+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ghisvail\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Apre-commit-ci+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Awelcome+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​welcome\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0 -- 2023-12-19\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.0.1...v1.1.0\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\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/executablebooks/sphinx-book-theme/commit/23f6936ae956428463f2ec97eebc2fe68bdd344b\"\u003e\u003ccode\u003e23f6936\u003c/code\u003e\u003c/a\u003e chore: bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/co...\n\n_Description has been truncated_","html_url":"https://github.com/wlxlatiao666/vllm-0.8.3/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/wlxlatiao666%2Fvllm-0.8.3/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}},{"old_version":"1.3.0","new_version":"1.3.1","update_type":"patch","path":null,"pr_created_at":"2026-02-01T11:10:59.000Z","version_change":"1.3.0 → 1.3.1","issue":{"uuid":"3881829355","node_id":"PR_kwDOJpUnI87AtFcc","number":122,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 79 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-01T11:05:21.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-01T11:10:59.000Z","updated_at":"2026-03-01T11:05:23.000Z","time_to_close":2418862,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":79,"packages":[{"name":"black","old_version":"25.9.0","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.10.7","new_version":"7.13.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.13.3","new_version":"0.14.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"matplotlib","old_version":"3.10.6","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"deptry","old_version":"0.23.1","new_version":"0.24.0","repository_url":"https://github.com/fpgmaas/deptry"},{"name":"pyarrow","old_version":"21.0.0","new_version":"23.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"pandas-stubs","old_version":"2.3.2.250926","new_version":"2.3.3.260113","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"anyio","old_version":"4.11.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"async-lru","old_version":"2.0.5","new_version":"2.1.0","repository_url":"https://github.com/aio-libs/async-lru"},{"name":"beautifulsoup4","old_version":"4.14.2","new_version":"4.14.3"},{"name":"bleach","old_version":"6.2.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"certifi","old_version":"2025.10.5","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cfgv","old_version":"3.4.0","new_version":"3.5.0","repository_url":"https://github.com/asottile/cfgv"},{"name":"charset-normalizer","old_version":"3.4.3","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.0","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"debugpy","old_version":"1.8.17","new_version":"1.8.20","repository_url":"https://github.com/microsoft/debugpy"},{"name":"exceptiongroup","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.19.1","new_version":"3.20.3","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.60.1","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"identify","old_version":"2.6.15","new_version":"2.6.16","repository_url":"https://github.com/pre-commit/identify"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"ipykernel","old_version":"6.30.1","new_version":"7.1.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ipython","old_version":"8.37.0","new_version":"8.38.0","repository_url":"https://github.com/ipython/ipython"},{"name":"ipywidgets","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"json5","old_version":"0.12.1","new_version":"0.13.0","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"jsonschema","old_version":"4.25.1","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"jupyter-client","old_version":"8.6.3","new_version":"8.8.0","repository_url":"https://github.com/jupyter/jupyter_client"},{"name":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"jupyter-server-terminals","old_version":"0.5.3","new_version":"0.5.4","repository_url":"https://github.com/jupyter-server/jupyter_server_terminals"},{"name":"jupyterlab","old_version":"4.4.9","new_version":"4.5.3","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"jupyterlab-widgets","old_version":"3.0.15","new_version":"3.0.16","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"lark","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"mistune","old_version":"3.1.4","new_version":"3.2.0","repository_url":"https://github.com/lepture/mistune"},{"name":"nbclient","old_version":"0.10.2","new_version":"0.10.4","repository_url":"https://github.com/jupyter/nbclient"},{"name":"nbconvert","old_version":"7.16.6","new_version":"7.17.0","repository_url":"https://github.com/jupyter/nbconvert"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"numba","old_version":"0.62.1","new_version":"0.63.1","repository_url":"https://github.com/numba/numba"},{"name":"numexpr","old_version":"2.13.1","new_version":"2.14.1","repository_url":"https://github.com/pydata/numexpr"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pillow","old_version":"11.3.0","new_version":"12.1.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.4.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prometheus-client","old_version":"0.23.1","new_version":"0.24.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"psutil","old_version":"7.1.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycparser","old_version":"2.23","new_version":"3.0","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyparsing","old_version":"3.2.5","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"roman-numerals-py","old_version":"3.1.0","new_version":"4.1.0","repository_url":"https://github.com/AA-Turner/roman-numerals"},{"name":"rpds-py","old_version":"0.27.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"ruamel-yaml","old_version":"0.18.15","new_version":"0.19.1"},{"name":"send2trash","old_version":"1.8.3","new_version":"2.1.0","repository_url":"https://github.com/arsenetar/send2trash"},{"name":"setuptools","old_version":"80.9.0","new_version":"80.10.2","repository_url":"https://github.com/pypa/setuptools"},{"name":"soupsieve","old_version":"2.8","new_version":"2.8.3","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.48.0","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"tornado","old_version":"6.5.2","new_version":"6.5.4","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-pytz","old_version":"2025.2.0.20250809","new_version":"2025.2.0.20251108","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"tzdata","old_version":"2025.2","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.37.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.34.0","new_version":"20.36.1","repository_url":"https://github.com/pypa/virtualenv"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"wcwidth","old_version":"0.2.14","new_version":"0.5.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"webcolors","old_version":"24.11.1","new_version":"25.10.0","repository_url":"https://github.com/ubernostrum/webcolors"},{"name":"websocket-client","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/websocket-client/websocket-client"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"},{"name":"widgetsnbextension","old_version":"4.0.14","new_version":"4.0.15"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 75 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [black](https://github.com/psf/black) | `25.9.0` | `26.1.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.7` | `7.13.2` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.3` | `0.14.14` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.6` | `3.10.8` |\n| [deptry](https://github.com/fpgmaas/deptry) | `0.23.1` | `0.24.0` |\n| [pyarrow](https://github.com/apache/arrow) | `21.0.0` | `23.0.0` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.2.250926` | `2.3.3.260113` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.12.1` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [async-lru](https://github.com/aio-libs/async-lru) | `2.0.5` | `2.1.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.2` | `4.14.3` |\n| [bleach](https://github.com/mozilla/bleach) | `6.2.0` | `6.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.10.5` | `2026.1.4` |\n| [cfgv](https://github.com/asottile/cfgv) | `3.4.0` | `3.5.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.3` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.17` | `1.8.20` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.3.0` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.19.1` | `3.20.3` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.60.1` | `4.61.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.15` | `2.6.16` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.30.1` | `7.1.0` |\n| [ipython](https://github.com/ipython/ipython) | `8.37.0` | `8.38.0` |\n| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.7` | `8.1.8` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.1` | `0.13.0` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.25.1` | `4.26.0` |\n| [jupyter-client](https://github.com/jupyter/jupyter_client) | `8.6.3` | `8.8.0` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [jupyter-server-terminals](https://github.com/jupyter-server/jupyter_server_terminals) | `0.5.3` | `0.5.4` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.4.9` | `4.5.3` |\n| [jupyterlab-widgets](https://github.com/jupyter-widgets/ipywidgets) | `3.0.15` | `3.0.16` |\n| [lark](https://github.com/lark-parser/lark) | `1.3.0` | `1.3.1` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [mistune](https://github.com/lepture/mistune) | `3.1.4` | `3.2.0` |\n| [nbclient](https://github.com/jupyter/nbclient) | `0.10.2` | `0.10.4` |\n| [nbconvert](https://github.com/jupyter/nbconvert) | `7.16.6` | `7.17.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [numba](https://github.com/numba/numba) | `0.62.1` | `0.63.1` |\n| [numexpr](https://github.com/pydata/numexpr) | `2.13.1` | `2.14.1` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.3.0` | `12.1.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.4.0` | `4.5.1` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.23.1` | `0.24.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.0` | `7.2.2` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.23` | `3.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.5` | `3.3.2` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [roman-numerals-py](https://github.com/AA-Turner/roman-numerals) | `3.1.0` | `4.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.1` | `0.30.0` |\n| ruamel-yaml | `0.18.15` | `0.19.1` |\n| [send2trash](https://github.com/arsenetar/send2trash) | `1.8.3` | `2.1.0` |\n| [setuptools](https://github.com/pypa/setuptools) | `80.9.0` | `80.10.2` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8` | `2.8.3` |\n| [starlette](https://github.com/Kludex/starlette) | `0.48.0` | `0.52.1` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.0` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.2` | `6.5.4` |\n| [types-pytz](https://github.com/typeshed-internal/stub_uploader) | `2025.2.0.20250809` | `2025.2.0.20251108` |\n| [tzdata](https://github.com/python/tzdata) | `2025.2` | `2025.3` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.37.0` | `0.40.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.34.0` | `20.36.1` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.14` | `0.5.3` |\n| [webcolors](https://github.com/ubernostrum/webcolors) | `24.11.1` | `25.10.0` |\n| [websocket-client](https://github.com/websocket-client/websocket-client) | `1.8.0` | `1.9.0` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n| [widgetsnbextension](http://jupyter.org) | `4.0.14` | `4.0.15` |\n\n\nUpdates `black` from 25.9.0 to 26.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \u003ccode\u003eas\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\nmatching subdirectories (like the previous behavior did), and not just matching root\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/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \u003ccode\u003eas\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\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/psf/black/commit/6305bf1ae645ab7541be4f5028a86239316178eb\"\u003e\u003ccode\u003e6305bf1\u003c/code\u003e\u003c/a\u003e Prepare 2026.1.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e71305bee302f7f9016b228361e5ae69669dca7b\"\u003e\u003ccode\u003ee71305b\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.3.0 to 3.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4961\"\u003e#4961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/21a2a8c2b1d0c8d47bc00cc59591470f6a9e2307\"\u003e\u003ccode\u003e21a2a8c\u003c/code\u003e\u003c/a\u003e Fix Shutdown multiprocessing Manager in schedule_formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4952\"\u003e#4952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e3146cea4245fcee29d007cb45d9faaf63271586\"\u003e\u003ccode\u003ee3146ce\u003c/code\u003e\u003c/a\u003e Bump docker/setup-buildx-action from 3.11.1 to 3.12.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4919\"\u003e#4919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/fe1fbc4fdfa03fa1d460f975b8aca77e4b4f1a4a\"\u003e\u003ccode\u003efe1fbc4\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4923\"\u003e#4923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b4b7fcfe00bb0d99322e07e87fc2f0992f7a4d8\"\u003e\u003ccode\u003e2b4b7fc\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4922\"\u003e#4922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d745be69bfa9d85ec2ef6e5f9b7ec7e253b5e8ab\"\u003e\u003ccode\u003ed745be6\u003c/code\u003e\u003c/a\u003e docs: document --force-exclude for pre-commit workflows (\u003ca href=\"https://redirect.github.com/psf/black/issues/4957\"\u003e#4957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b41acd6ebbe76e18b49286166924f73f01c3fd02\"\u003e\u003ccode\u003eb41acd6\u003c/code\u003e\u003c/a\u003e Various CI and doc refactors (\u003ca href=\"https://redirect.github.com/psf/black/issues/4928\"\u003e#4928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6f43612766da4a2f275b575af0802c3e73b6ed83\"\u003e\u003ccode\u003e6f43612\u003c/code\u003e\u003c/a\u003e Handle pathspec v1 changes (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/200c550aff44372f801a6d826a361cb26f45a504\"\u003e\u003ccode\u003e200c550\u003c/code\u003e\u003c/a\u003e Bump furo from 2025.9.25 to 2025.12.19 in /docs (\u003ca href=\"https://redirect.github.com/psf/black/issues/4933\"\u003e#4933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.9.0...26.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.7 to 7.13.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.2 — 2026-01-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: when Python is installed via symlinks, for example with Homebrew, the\nstandard library files could be incorrectly included in coverage reports.\nThis is now fixed, closing \u003ccode\u003eissue 2115\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: if a data file is created with no read permissions, the combine step\nwould fail completely. Now a warning is issued and the file is skipped.\nCloses \u003ccode\u003eissue 2117\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2115: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2115\"\u003ecoveragepy/coveragepy#2115\u003c/a\u003e\n.. _issue 2117: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2117\"\u003ecoveragepy/coveragepy#2117\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/513e97162536cb94aeb94ed3cbe487ca64d13e07\"\u003e\u003ccode\u003e513e971\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/27a8230cf0ef73abca824d2a8622235d9ad8ab96\"\u003e\u003ccode\u003e27a8230\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/27d8daac216ffef80276515b22cf679f9fabc422\"\u003e\u003ccode\u003e27d8daa\u003c/code\u003e\u003c/a\u003e refactor: plural does more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2f248cf095fc49d3599c39befdea6a5552ccd23\"\u003e\u003ccode\u003ea2f248c\u003c/code\u003e\u003c/a\u003e fix: stdlib might be through a symlink. \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2115\"\u003e#2115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/bc52a22953759f71c291d31e7d17faf9903c0667\"\u003e\u003ccode\u003ebc52a22\u003c/code\u003e\u003c/a\u003e debug: re-organize Matchers to show more of what they do\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/f338d816ba7fcd23934a9397d15450593f0f20d9\"\u003e\u003ccode\u003ef338d81\u003c/code\u003e\u003c/a\u003e debug: build is a tuple, don't show it on two lines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/92020e469ab6c80cbe24786d0250a571d5f569cf\"\u003e\u003ccode\u003e92020e4\u003c/code\u003e\u003c/a\u003e refactor(test): convert to parametrized\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/6387d0a60d80cb96231ad32fe81be47cddfe1c78\"\u003e\u003ccode\u003e6387d0a\u003c/code\u003e\u003c/a\u003e test: let (most) tests run with no network\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1d31e33cfe0ccef7d87c1f0c6219f55a3d9b5eee\"\u003e\u003ccode\u003e1d31e33\u003c/code\u003e\u003c/a\u003e build: workflows sometimes need more than 10 min\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/62949782b7810d8ffc228ba0e00f81c2ab81cda7\"\u003e\u003ccode\u003e6294978\u003c/code\u003e\u003c/a\u003e refactor: an error message is now uniform across versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.10.7...7.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.9.25 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.09.25 -- Gleaming Green\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChange the dark mode code back to \u003ccode\u003enative\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.07.19 -- Frozen Flame\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Switch to accessible-pygments themes\u003c/li\u003e\n\u003cli\u003e✨ Prefetch the sidebar logos\u003c/li\u003e\n\u003cli\u003e✨ Fix flickering header drop shadow on Safari\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003erel=edit\u003c/code\u003e attribute to \u0026quot;Edit this page\u0026quot; link/icon\u003c/li\u003e\n\u003cli\u003eBump NodeJS and npm dependency versions\u003c/li\u003e\n\u003cli\u003eBump Saas \u0026amp; Webpack major versions\u003c/li\u003e\n\u003cli\u003eImprove current page detection to be resilient to sticky elements above header\u003c/li\u003e\n\u003cli\u003eModernise Sass and use \u003ccode\u003e@use\u003c/code\u003e + \u003ccode\u003e@forward\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove top of code \u003ccode\u003eborder-radius\u003c/code\u003e with captions\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;debug printf\u0026quot; for headerTop value\u003c/li\u003e\n\u003cli\u003eUse distinct images for light and dark mode in the documentation\u003c/li\u003e\n\u003cli\u003eUse the modern Saas Modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.08.06 -- Energetic Eminence\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 8\u003c/li\u003e\n\u003cli\u003e✨ Add smoother transitions between breakpoints\u003c/li\u003e\n\u003cli\u003eIncrease specificity of table-wrapper selector\u003c/li\u003e\n\u003cli\u003eAvoid page breaks inside paragraphs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.07.18 -- Dull Denim\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove how icons are handled and aligned.\u003c/li\u003e\n\u003cli\u003eImprove scroll event handler.\u003c/li\u003e\n\u003cli\u003eHide the copybutton by default.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003esource_view_link\u003c/code\u003e configuration handling.\u003c/li\u003e\n\u003cli\u003eFix close tag on pencil icon.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.05.06 -- Cheerful Cerulean\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add new custom icons for auto mode, reflecting the currently active theme.\u003c/li\u003e\n\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\u003c/code\u003e\u003c/a\u003e Back to development\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.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.3.0 to 4.5.1\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.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\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.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\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/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\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/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\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/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\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/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\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/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\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/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\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/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.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.13.3 to 0.14.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-22.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve required parentheses in lambda bodies (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22747\"\u003e#22747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCombine range suppression code diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22613\"\u003e#22613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Second positional argument to \u003ccode\u003eAsset\u003c/code\u003e/\u003ccode\u003eDataset\u003c/code\u003e should not be a dictionary (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22453\"\u003e#22453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Detect duplicate entries in \u003ccode\u003e__all__\u003c/code\u003e (\u003ccode\u003eRUF068\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22114\"\u003e#22114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Allow shadowing non-builtin bindings (\u003ccode\u003eUP029\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22749\"\u003e#22749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pie\u003c/code\u003e] Detect duplicated declared class fields in \u003ccode\u003ePIE794\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22717\"\u003e#22717\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-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e, \u003ccode\u003e__enter__\u003c/code\u003e, \u003ccode\u003e__aenter__\u003c/code\u003e in \u003ccode\u003ePYI034\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22798\"\u003e#22798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Support \u003ccode\u003echeck\u003c/code\u003e parameter in \u003ccode\u003ePT011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22725\"\u003e#22725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add exception for \u003ccode\u003ectypes.Structure._fields_\u003c/code\u003e (\u003ccode\u003eRUF012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22559\"\u003e#22559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMany fixes are now marked unsafe if they would remove comments:\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22656\"\u003e\u003ccode\u003eB009\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22657\"\u003e\u003ccode\u003eB010\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22658\"\u003e\u003ccode\u003eB013\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22659\"\u003e\u003ccode\u003eB014\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22632\"\u003e\u003ccode\u003eB033\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22662\"\u003e\u003ccode\u003eSIM910\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22661\"\u003e\u003ccode\u003eSIM911\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP007\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22774\"\u003e\u003ccode\u003eUP039\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22773\"\u003e\u003ccode\u003eUP041\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP045\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22767\"\u003e\u003ccode\u003eFURB105\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22681\"\u003e\u003ccode\u003eFURB116\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22680\"\u003e\u003ccode\u003eFURB136\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22679\"\u003e\u003ccode\u003eFURB140\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22670\"\u003e\u003ccode\u003eFURB145\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22669\"\u003e\u003ccode\u003eFURB154\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22668\"\u003e\u003ccode\u003eFURB157\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22667\"\u003e\u003ccode\u003eFURB164\u003c/code\u003e\u003c/a\u003e,\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22666\"\u003e\u003ccode\u003eFURB181\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22665\"\u003e\u003ccode\u003eFURB188\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22663\"\u003e\u003ccode\u003eRUF019\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22664\"\u003e\u003ccode\u003eRUF020\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--exit-non-zero-on-format\u003c/code\u003e to formatter exit codes section (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22761\"\u003e#22761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eFastAPI\u003c/code\u003e] Document fix safety for \u003ccode\u003eFAST001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22655\"\u003e#22655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Tweak explanation to focus on latency/efficiency tradeoff (\u003ccode\u003eASYNC110\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22715\"\u003e#22715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePD002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22561\"\u003e#22561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB101\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22770\"\u003e#22770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22769\"\u003e#22769\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caiquejjx\"\u003e\u003ccode\u003e@​caiquejjx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sjyangkevin\"\u003e\u003ccode\u003e@​sjyangkevin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MeGaGiGaGon\"\u003e\u003ccode\u003e@​MeGaGiGaGon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leandrobbraga\"\u003e\u003ccode\u003e@​leandrobbraga\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.14\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-22.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve required parentheses in lambda bodies (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22747\"\u003e#22747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCombine range suppression code diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22613\"\u003e#22613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Second positional argument to \u003ccode\u003eAsset\u003c/code\u003e/\u003ccode\u003eDataset\u003c/code\u003e should not be a dictionary (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22453\"\u003e#22453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Detect duplicate entries in \u003ccode\u003e__all__\u003c/code\u003e (\u003ccode\u003eRUF068\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22114\"\u003e#22114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Allow shadowing non-builtin bindings (\u003ccode\u003eUP029\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22749\"\u003e#22749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pie\u003c/code\u003e] Detect duplicated declared class fields in \u003ccode\u003ePIE794\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22717\"\u003e#22717\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-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e, \u003ccode\u003e__enter__\u003c/code\u003e, \u003ccode\u003e__aenter__\u003c/code\u003e in \u003ccode\u003ePYI034\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22798\"\u003e#22798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Support \u003ccode\u003echeck\u003c/code\u003e parameter in \u003ccode\u003ePT011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22725\"\u003e#22725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add exception for \u003ccode\u003ectypes.Structure._fields_\u003c/code\u003e (\u003ccode\u003eRUF012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22559\"\u003e#22559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMany fixes are now marked unsafe if they would remove comments:\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22656\"\u003e\u003ccode\u003eB009\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22657\"\u003e\u003ccode\u003eB010\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22658\"\u003e\u003ccode\u003eB013\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22659\"\u003e\u003ccode\u003eB014\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22632\"\u003e\u003ccode\u003eB033\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22662\"\u003e\u003ccode\u003eSIM910\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22661\"\u003e\u003ccode\u003eSIM911\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP007\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22774\"\u003e\u003ccode\u003eUP039\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22773\"\u003e\u003ccode\u003eUP041\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP045\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22767\"\u003e\u003ccode\u003eFURB105\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22681\"\u003e\u003ccode\u003eFURB116\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22680\"\u003e\u003ccode\u003eFURB136\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22679\"\u003e\u003ccode\u003eFURB140\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22670\"\u003e\u003ccode\u003eFURB145\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22669\"\u003e\u003ccode\u003eFURB154\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22668\"\u003e\u003ccode\u003eFURB157\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22667\"\u003e\u003ccode\u003eFURB164\u003c/code\u003e\u003c/a\u003e,\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22666\"\u003e\u003ccode\u003eFURB181\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22665\"\u003e\u003ccode\u003eFURB188\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22663\"\u003e\u003ccode\u003eRUF019\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22664\"\u003e\u003ccode\u003eRUF020\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--exit-non-zero-on-format\u003c/code\u003e to formatter exit codes section (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22761\"\u003e#22761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eFastAPI\u003c/code\u003e] Document fix safety for \u003ccode\u003eFAST001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22655\"\u003e#22655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Tweak explanation to focus on latency/efficiency tradeoff (\u003ccode\u003eASYNC110\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22715\"\u003e#22715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePD002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22561\"\u003e#22561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB101\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22770\"\u003e#22770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22769\"\u003e#22769\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caiquejjx\"\u003e\u003ccode\u003e@​caiquejjx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sjyangkevin\"\u003e\u003ccode\u003e@​sjyangkevin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MeGaGiGaGon\"\u003e\u003ccode\u003e@​MeGaGiGaGon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leandrobbraga\"\u003e\u003ccode\u003e@​leandrobbraga\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/8b2e7b36f246b990fe473a84eef25ff429e59ecf\"\u003e\u003ccode\u003e8b2e7b3\u003c/code\u003e\u003c/a\u003e Prepare release v0.14.14 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22813\"\u003e#22813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4c7d1f50fd8d1baf06a3c8885ecd0ded0113d383\"\u003e\u003ccode\u003e4c7d1f5\u003c/code\u003e\u003c/a\u003e [ty] Infer \u003ccode\u003eTypedDict\u003c/code\u003e types with \u0026gt;=1 required key as being always truthy (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b7de4341535ff2b299695335e0a7b9ebaf297348\"\u003e\u003ccode\u003eb7de434\u003c/code\u003e\u003c/a\u003e add CCfW hooks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22803\"\u003e#22803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b912dfc8788f8f8c351767899df6b72ce3366352\"\u003e\u003ccode\u003eb912dfc\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1ff062d1cccb8025de184a55c6dfe469a4293249\"\u003e\u003ccode\u003e1ff062d\u003c/code\u003e\u003c/a\u003e [ty] Improve completion rankings for raise-from/except contexts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22775\"\u003e#22775\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7e408a51d24db2bca248bb90f2f7938f83efd22b\"\u003e\u003ccode\u003e7e408a5\u003c/code\u003e\u003c/a\u003e Update dependency wrangler to v4.59.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22793\"\u003e#22793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ceb876b82300bd237d11e3eb77c46fcf3d3afe85\"\u003e\u003ccode\u003eceb876b\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e,...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c5b4ee68c90faf0e609fa6553a171a7ba60ebdcb\"\u003e\u003ccode\u003ec5b4ee6\u003c/code\u003e\u003c/a\u003e [ty] Support solving generics involving PEP 695 type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22678\"\u003e#22678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b9a61293153f43df9963c727539309b76ac4756d\"\u003e\u003ccode\u003eb9a6129\u003c/code\u003e\u003c/a\u003e [ty] Improve support for kwarg splats in dictionary literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22781\"\u003e#22781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f516d47ceb7f6a0c3a95eaaa2c7451a32b5d7120\"\u003e\u003ccode\u003ef516d47\u003c/code\u003e\u003c/a\u003e Update contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.3...0.14.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.2 to 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\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/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\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/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `matplotlib` from 3.10.6 to 3.10.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/matplotlib/matplotlib/releases\"\u003ematplotlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eREL: v3.10.8\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eThe primary highlights of this release are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProperly allow freethreaded mode in the MacOS backend\u003c/li\u003e\n\u003cli\u003eBetter error handling for MacOS backend\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eREL: v3.10.7\u003c/h2\u003e\n\u003cp\u003eThis is the latest bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eThe most important update in this release is that the minimum version\nof \u003ccode\u003epyparsing\u003c/code\u003e has been updated to version 3.0.\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/matplotlib/matplotlib/commit/1392cbe3c79cdb93f9282747841d648770f60249\"\u003e\u003ccode\u003e1392cbe\u003c/code\u003e\u003c/a\u003e REL: v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/0b9ebb35f8310f22eb7f932b2ae14befb1f40b6f\"\u003e\u003ccode\u003e0b9ebb3\u003c/code\u003e\u003c/a\u003e Doc release prep v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/bc7b5c4377ce2544e8936255c51c1ff7cd0c5a85\"\u003e\u003ccode\u003ebc7b5c4\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.7-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/86b38d3f29aa2af2ddcbd1895433117caa0fba47\"\u003e\u003ccode\u003e86b38d3\u003c/code\u003e\u003c/a\u003e Github stats v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/9512188e42f9d221f83869113c44f99fe1832a0f\"\u003e\u003ccode\u003e9512188\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30717\"\u003e#30717\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30714-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/d300769285e2c920804134e40ec83837eabe16d8\"\u003e\u003ccode\u003ed300769\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30714\"\u003e#30714\u003c/a\u003e: FIX: Gracefully handle numpy arrays as input to check_in_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/799bc9561daea5b5578f888817cb45c9321a0463\"\u003e\u003ccode\u003e799bc95\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30711\"\u003e#30711\u003c/a\u003e from ngoldbaum/v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/134000ba19a4354da2ad1084627039e05c936754\"\u003e\u003ccode\u003e134000b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30697\"\u003e#30697\u003c/a\u003e from ngoldbaum/fix-plotting-on-worker-threads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/5b8e219d70f1daa443330eb6a5a6211506b37362\"\u003e\u003ccode\u003e5b8e219\u003c/code\u003e\u003c/a\u003e TST: Run macosx backends in a subprocess\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/878e71a95006d3aec9505f3bd836968951fdd163\"\u003e\u003ccode\u003e878e71a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/29810\"\u003e#29810\u003c/a\u003e: Declare free-threaded support in MacOS backend extension ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.6...v3.10.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `deptry` from 0.23.1 to 0.24.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fpgmaas/deptry/releases\"\u003edeptry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003ch4\u003ePython 3.9 support dropped\u003c/h4\u003e\n\u003cp\u003eSupport for Python 3.9 has been dropped, as it has reached its end of life.\u003c/p\u003e\n\u003ch4\u003ePyPy 3.10 support dropped, 3.11 added\u003c/h4\u003e\n\u003cp\u003eSupport for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd GitHub Actions annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-pre-system/pull/122","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-pre-system/issues/122","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/122/packages"}},{"old_version":"1.2.2","new_version":"1.3.1","update_type":"minor","path":null,"pr_created_at":"2026-01-27T17:27:19.000Z","version_change":"1.2.2 → 1.3.1","issue":{"uuid":"3861652377","node_id":"PR_kwDOAYRY2s6_qPwm","number":5169,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 37 updates","user":"dependabot[bot]","labels":["Maintenance"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-02T06:05:06.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-27T17:27:19.000Z","updated_at":"2026-02-02T06:05:07.000Z","time_to_close":477467,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":37,"packages":[{"name":"django","old_version":"4.2.26","new_version":"6.0.1","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"django-pint","old_version":"0.7.3","new_version":"1.0.4","repository_url":"https://github.com/CarliJoy/django-pint"},{"name":"django-post-office","old_version":"3.10.1","new_version":"3.11.0","repository_url":"https://github.com/ui/django-post_office"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.14","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10.1","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.8","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.3.1","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [django](https://github.com/django/django), [psycopg2-binary](https://github.com/psycopg/psycopg2), [celery](https://github.com/celery/celery), [hiredis](https://github.com/redis/hiredis-py), [django-compressor](https://github.com/django-compressor/django-compressor), [django-pint](https://github.com/CarliJoy/django-pint), [django-post-office](https://github.com/ui/django-post_office), [drf-yasg](https://github.com/axnsan12/drf-yasg), [jellyfish](https://jellyfish.jpt.sh/), [markdown](https://github.com/Python-Markdown/markdown), [pyyaml](https://github.com/yaml/pyyaml), [xlsxwriter](https://github.com/jmcnamara/XlsxWriter), [xmlschema](https://github.com/sissaschool/xmlschema), [lark](https://github.com/lark-parser/lark), [pandas](https://github.com/pandas-dev/pandas), [simple-salesforce](https://github.com/simple-salesforce/simple-salesforce), [shapely](https://github.com/shapely/shapely), [django-treebeard](https://github.com/django-treebeard/django-treebeard), [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth), [importlib-metadata](https://github.com/python/importlib_metadata), [boto3](https://github.com/boto/boto3), [django-ses](https://github.com/django-ses/django-ses), [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/), [coverage](https://github.com/coveragepy/coveragepy), [coveralls](https://github.com/TheKevJames/coveralls-python), [tox](https://github.com/tox-dev/tox), [psutil](https://github.com/giampaolo/psutil), [faker](https://github.com/joke2k/faker), [vcrpy](https://github.com/kevin1024/vcrpy), [pytest](https://github.com/pytest-dev/pytest), [pre-commit](https://github.com/pre-commit/pre-commit), [sphinx](https://github.com/sphinx-doc/sphinx), [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling), [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme), [docutils](https://github.com/rtfd/recommonmark), [hypothesis](https://github.com/HypothesisWorks/hypothesis) and [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) to permit the latest version.\nUpdates `django` from 4.2.26 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/85eb963c5297fb285aecf4a90c97141a1b9c5bee\"\u003e\u003ccode\u003e85eb963\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac4a5509e3a6f2e1099ea659e0c1eb3ed4e9e00f\"\u003e\u003ccode\u003eac4a550\u003c/code\u003e\u003c/a\u003e [6.0.x] Added release date for 6.0.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/dcfc5b04ee8af8284e772a2f3619cd8affb1c07a\"\u003e\u003ccode\u003edcfc5b0\u003c/code\u003e\u003c/a\u003e [6.0.x] Added release date for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/42bab76258162e1df77d080aa69cac5d803ae90a\"\u003e\u003ccode\u003e42bab76\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36843\"\u003e#36843\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django/django/issues/36793\"\u003e#36793\u003c/a\u003e -- Reverted \u0026quot;Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/27489\"\u003e#27489\u003c/a\u003e -- Renamed permissions...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/764af478be8c25c186d27031c50c9a1d0697781b\"\u003e\u003ccode\u003e764af47\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/33647\"\u003e#33647\u003c/a\u003e -- Fixed silent data truncation in bulk_create on Postgres.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b7b5465b1c026dda7de646fca15ca1e97886d021\"\u003e\u003ccode\u003eb7b5465\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36829\"\u003e#36829\u003c/a\u003e -- Reverted value of ClearableFileInput.use_fieldset to ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/90daa655486c7fc69e9dad41c5e96f00339a3b9b\"\u003e\u003ccode\u003e90daa65\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/30515\"\u003e#30515\u003c/a\u003e -- Documented resolve_url() in docs/topics/http/shortcut...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d35daf8600a66c0ff20e36f82969df61a7fc4981\"\u003e\u003ccode\u003ed35daf8\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36796\"\u003e#36796\u003c/a\u003e -- Handled lazy routes correctly in RoutePattern.match().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/16107ab710dc23d5ea0aa17da6bf29fe89b61bb0\"\u003e\u003ccode\u003e16107ab\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36810\"\u003e#36810\u003c/a\u003e -- Avoided infinite recursion in LazyNonce.\u003cstrong\u003erepr\u003c/strong\u003e().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/774543ed4feb37916071e81c0d0b81ba514333fa\"\u003e\u003ccode\u003e774543e\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36305\"\u003e#36305\u003c/a\u003e -- Added documentation indentation guidelines to contrib...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.26...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by \u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Revoked tasks now immediately update backend status to REVOKED by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9869\"\u003ecelery/celery#9869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10049\"\u003ecelery/celery#10049\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/celery/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option by \u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10020\"\u003ecelery/celery#10020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup by \u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereliable prefork detection by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10023\"\u003ecelery/celery#10023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter coverage by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10029\"\u003ecelery/celery#10029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example by \u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10032\"\u003ecelery/celery#10032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10033\"\u003ecelery/celery#10033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10037\"\u003ecelery/celery#10037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/celery/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2026-01-04\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string ([#10045](https://github.com/celery/celery/issues/10045))\n- Bugfix: Revoked tasks now immediately update backend status to REVOKED ([#9869](https://github.com/celery/celery/issues/9869))\n- Prepare for release: v5.6.2 ([#10049](https://github.com/celery/celery/issues/10049))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-12-29\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10013\"\u003e#10013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9986\"\u003e#9986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10020\"\u003e#10020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereliable prefork detection (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10023\"\u003e#10023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebetter coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10030\"\u003e#10030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10032\"\u003e#10032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6a43c846f183ef0cbade24f4b9a8f7a6ea113b44\"\u003e\u003ccode\u003e6a43c84\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10049\"\u003e#10049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/333a82f746734151c5cbe848916085455b0a3748\"\u003e\u003ccode\u003e333a82f\u003c/code\u003e\u003c/a\u003e Bugfix: Revoked tasks now immediately update backend status to REVOKED (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9869\"\u003e#9869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/9d6ab110d947270c4edf0b42454266d2954e653d\"\u003e\u003ccode\u003e9d6ab11\u003c/code\u003e\u003c/a\u003e Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeEr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21dbc73f81d2fae058de49e665afaa1cd92da5c0\"\u003e\u003ccode\u003e21dbc73\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/ba20bed7723c684d12ddd62d6a7c0c0d901b3351\"\u003e\u003ccode\u003eba20bed\u003c/code\u003e\u003c/a\u003e Only use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21675299bc2d10c648448ec5221136e07c1eec1a\"\u003e\u003ccode\u003e2167529\u003c/code\u003e\u003c/a\u003e Stop importing pytest_subtests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0527296acb1f1790788301d4395ba6d5ce2a9704\"\u003e\u003ccode\u003e0527296\u003c/code\u003e\u003c/a\u003e Bump google-cloud-firestore from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5f8659bdba4561796d66e938a1e2c71d4489562f\"\u003e\u003ccode\u003e5f8659b\u003c/code\u003e\u003c/a\u003e Clarify 'result_extended' setting usage in tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f19db7008682c782d85e69b5ce736970491752ea\"\u003e\u003ccode\u003ef19db70\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10028\"\u003e#10028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6da72bde60553a1c350eef1e17d834d004ed099d\"\u003e\u003ccode\u003e6da72bd\u003c/code\u003e\u003c/a\u003e better coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on 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/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 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/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-pint` from 0.7.3 to 1.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CarliJoy/django-pint/releases\"\u003edjango-pint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for expressions (subqueries) in bulk updates (\u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/119\"\u003eCarliJoy/django-pint#119\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect minimal Django version to 5.2 in pyproject.toml\u003c/li\u003e\n\u003cli\u003eFix documentation builds\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFix PyPI signatures\u003c/h2\u003e\n\u003cp\u003eFix broken pipeline for PyPI Sigstore uploads. No source code changes.\u003c/p\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cp\u003eFix a problem with the release pipeline. No source code changes.\u003c/p\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMakefile for easier dev setup by \u003ca href=\"https://github.com/mmarras\"\u003e\u003ccode\u003e@​mmarras\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/100\"\u003eCarliJoy/django-pint#100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etry unit conversion instead of literal dimensionality check \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/99\"\u003e#99\u003c/a\u003e by \u003ca href=\"https://github.com/mmarras\"\u003e\u003ccode\u003e@​mmarras\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/101\"\u003eCarliJoy/django-pint#101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003econvert numeric types to str before calling Decimal by \u003ca href=\"https://github.com/SamuelJennings\"\u003e\u003ccode\u003e@​SamuelJennings\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/108\"\u003eCarliJoy/django-pint#108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate to pyproject and ruff by \u003ca href=\"https://github.com/CarliJoy\"\u003e\u003ccode\u003e@​CarliJoy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/118\"\u003eCarliJoy/django-pint#118\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/mmarras\"\u003e\u003ccode\u003e@​mmarras\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/100\"\u003eCarliJoy/django-pint#100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Adiorz\"\u003e\u003ccode\u003e@​Adiorz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/117\"\u003eCarliJoy/django-pint#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CarliJoy/django-pint/compare/v0.7.3...v1.0.0\"\u003ehttps://github.com/CarliJoy/django-pint/compare/v0.7.3...v1.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CarliJoy/django-pint/blob/main/CHANGELOG.rst\"\u003edjango-pint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion 1.0.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for expressions (subqueries) in bulk updates (\u003ccode\u003eby @Adiorz, issue [#119](https://github.com/CarliJoy/django-pint/issues/119) \u0026lt;https://github.com/CarliJoy/django-pint/issues/119\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect minimal Django version to 5.2 in pyproject.toml\u003c/li\u003e\n\u003cli\u003eFix documentation builds\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix broken pipeline for PyPI Sigstore uploads. No source code changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix Problem in Publish Pipeline using old upload-artifact (no source code changes)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eStart following \u003ccode\u003eSemVer \u0026lt;https://semver.org/spec/v2.0.0.html\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eConvert numeric types to str before calling Decimal \u003ccode\u003e[#101](https://github.com/CarliJoy/django-pint/issues/101) by @mmarra \u0026lt;https://github.com/CarliJoy/django-pint/pull/101\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eTry unit conversion instead of literal dimensionality check \u003ccode\u003e[#108](https://github.com/CarliJoy/django-pint/issues/108)  by @SamuelJennings \u0026lt;https://github.com/CarliJoy/django-pint/pull/108\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8 and 3.9 and Django 3.2\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12, 3.13 and 3.14 and Django 6.0 \u003ccode\u003e[#116](https://github.com/CarliJoy/django-pint/issues/116) by @Adiorz \u0026lt;https://github.com/CarliJoy/django-pint/pull/117\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eModernize project setup: Use \u003ccode\u003epyproject.toml\u003c/code\u003e only and \u003ccode\u003eruff\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.7.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix conversion of number input to DecimalField (\u003ccode\u003eissue [#106](https://github.com/CarliJoy/django-pint/issues/106) \u0026lt;https://github.com/CarliJoy/django-pint/issues/106\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.7.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix wrong unit display in widget (\u003ccode\u003eissue [#43](https://github.com/CarliJoy/django-pint/issues/43) \u0026lt;https://github.com/CarliJoy/django-pint/issues/43\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.7.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003edrop support for Django (\u0026lt;3.2) and Python Versions (\u0026lt;3.7) as they reached EOL\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003ePositiveIntegerQuantityField\u003c/code\u003e (\u003ccode\u003emerge request [#39](https://github.com/CarliJoy/django-pint/issues/39) from jwygoda\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003efix display of negative and scientific numbers in Widget (\u003ccode\u003emerger request [#41](https://github.com/CarliJoy/django-pint/issues/41) from mikeford3\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.6.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix error with Django 3.2 (\u003ccode\u003eissue [#36](https://github.com/CarliJoy/django-pint/issues/36)\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eremove PrecisionError\u003c/li\u003e\n\u003cli\u003erestructure function a bit, add more type annotations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.6.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eonly a internal technical release as the PyPi token had to be removed\ndue to security breach before and no new token was set before\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/a1179f59d71b6b1ad1d9e9e2f59c191d8d1c4621\"\u003e\u003ccode\u003ea1179f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/120\"\u003e#120\u003c/a\u003e from Adiorz/fix/support-expressions-in-bulk-updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/432792b2406cab189be3082057491b1c6b1cbb9f\"\u003e\u003ccode\u003e432792b\u003c/code\u003e\u003c/a\u003e docs: added author and issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/6d8b267d264a2c834aea9beaeb425b3e9707e14b\"\u003e\u003ccode\u003e6d8b267\u003c/code\u003e\u003c/a\u003e docs: add patch release entry to changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/9d2514bf98afd17ef83fc41375fffd20de1dd18f\"\u003e\u003ccode\u003e9d2514b\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/CarliJoy/django-pint/commit/342cd92ac606b34420f6b8223b8903b92c5ee4f5\"\u003e\u003ccode\u003e342cd92\u003c/code\u003e\u003c/a\u003e fix: support expressions (subqueries) in bulk updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/2ab1034bcc0b5fb99bfd16446d4f0a69e29a8b30\"\u003e\u003ccode\u003e2ab1034\u003c/code\u003e\u003c/a\u003e 👽 update used ci/cd template\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/a4bb6bce1a42bda837d003a10276d3f05ca8a687\"\u003e\u003ccode\u003ea4bb6bc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/116\"\u003e#116\u003c/a\u003e from CarliJoy/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/092c8b8a4c236a98565c7e74a2b082c8c204041e\"\u003e\u003ccode\u003e092c8b8\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/CarliJoy/django-pint/commit/eedda5dd9ff198c1ba4c43d4cc644cd63313f391\"\u003e\u003ccode\u003eeedda5d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/67fa3b9f7af927bedf810fc8694d72452b17fbed\"\u003e\u003ccode\u003e67fa3b9\u003c/code\u003e\u003c/a\u003e Fix minimal django version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/CarliJoy/django-pint/compare/v0.7.3...v1.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-post-office` from 3.10.1 to 3.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ui/django-post_office/releases\"\u003edjango-post-office's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Python 3.14 and Django 6.0 compatibility. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ui/django-post_office/blob/master/CHANGELOG.md\"\u003edjango-post-office's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/825af68a79bce78acb18c945d1f3acd5935a975b\"\u003e\u003ccode\u003e825af68\u003c/code\u003e\u003c/a\u003e Bump version to 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/99be3b50a904d84f35fecb14f6c64575611a2e8a\"\u003e\u003ccode\u003e99be3b5\u003c/code\u003e\u003c/a\u003e Delete publish.yml (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/a360b7946a0b8a777e0764ab7423749f7686716b\"\u003e\u003ccode\u003ea360b79\u003c/code\u003e\u003c/a\u003e Improve tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/fe7c583512845d31685245b783a502bfc221c0c6\"\u003e\u003ccode\u003efe7c583\u003c/code\u003e\u003c/a\u003e Python314 fix (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0556f5eaaffbbbb29bd3db2ad0c2ef2086595971\"\u003e\u003ccode\u003e0556f5e\u003c/code\u003e\u003c/a\u003e Updated test.yml so tests don't get triggered twice (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/00ddbc165e597af2967fa3fcd3f34a66d0659ae3\"\u003e\u003ccode\u003e00ddbc1\u003c/code\u003e\u003c/a\u003e Webhooks (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/936d1ac816ffd3cf734bd77f0bb7ec17082793f3\"\u003e\u003ccode\u003e936d1ac\u003c/code\u003e\u003c/a\u003e Updated README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/91fbc6c28be60288961521520581d20745b3320c\"\u003e\u003ccode\u003e91fbc6c\u003c/code\u003e\u003c/a\u003e Webhook handlers (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0f68aaf444779682ea3d8806a5f46dea1a753e08\"\u003e\u003ccode\u003e0f68aaf\u003c/code\u003e\u003c/a\u003e Merge branch 'webhooks'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/5b7fdf9989517b1e740cc725ae635833dc376a12\"\u003e\u003ccode\u003e5b7fdf9\u003c/code\u003e\u003c/a\u003e Move tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ui/django-post_office/compare/v3.10.1...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.14\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix missing swagger-ui sourcemaps (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/950\"\u003e#950\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e1.21.12\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Bring the bundled swagger ui up to date (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/944\"\u003e#944\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update the logout button to use a POST request. (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/945\"\u003e#945\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a live demo domain (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/946\"\u003e#946\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Handle annotations that are not available at runtime (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/941\"\u003e#941\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.14\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.13\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix missing swagger-ui sourcemaps (:pr:\u003ccode\u003e950\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.12\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Bring the bundled swagger ui up to date (:pr:\u003ccode\u003e944\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update the logout button to use a POST request. (:pr:\u003ccode\u003e945\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a live demo domain (:pr:\u003ccode\u003e946\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Handle annotations that are not available at runtime (:pr:\u003ccode\u003e941\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/7dceb2783db31631785cd15866c9b44540accf9f\"\u003e\u003ccode\u003e7dceb27\u003c/code\u003e\u003c/a\u003e Add version 1.21.14 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/952\"\u003e#952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/763cdd6473eb963ad36987088e697cfd4f744acc\"\u003e\u003ccode\u003e763cdd6\u003c/code\u003e\u003c/a\u003e Add version 1.21.13 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/951\"\u003e#951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a0559fcacd996b76fbbb5ea0d70aa5c314f06e0c\"\u003e\u003ccode\u003ea0559fc\u003c/code\u003e\u003c/a\u003e Add missing swagger-ui sourcemaps (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/950\"\u003e#950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/2bf74d0789b40aafa638c8fc1d4e25ea8340f530\"\u003e\u003ccode\u003e2bf74d0\u003c/code\u003e\u003c/a\u003e Add version 1.21.12 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/948\"\u003e#948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/b421e89667932159562652d3639368667e5d89d9\"\u003e\u003ccode\u003eb421e89\u003c/code\u003e\u003c/a\u003e swagger ui fix (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/944\"\u003e#944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/40fee2bd8be59bb1b112419fdb79cd9a09745306\"\u003e\u003ccode\u003e40fee2b\u003c/code\u003e\u003c/a\u003e Add live demo domain and environment variables (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/1785b84fe129382595790f390f2b983f62b45271\"\u003e\u003ccode\u003e1785b84\u003c/code\u003e\u003c/a\u003e Update logout button to use POST request. (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0522cc1d9b12df97c2b01cb94ad1587933e8d52c\"\u003e\u003ccode\u003e0522cc1\u003c/code\u003e\u003c/a\u003e Rename github actions files to .yaml (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/3a381234c9a6986bbd44867632ff3cdc78ffe352\"\u003e\u003ccode\u003e3a38123\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/943\"\u003e#943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/b252a0d8f8f87b9ef6417827ae631cf11a6262a1\"\u003e\u003ccode\u003eb252a0d\u003c/code\u003e\u003c/a\u003e Handle annotations not available at runtime (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/941\"\u003e#941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.10.1] - 2026-01-21\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.1] - 2025-06-18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/e5fa5b86e8ec380cbc520cfc637d72c779e5c601\"\u003e\u003ccode\u003ee5fa5b8\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/f9253495f5d9919f2fdd5e147832b5fc21330f65\"\u003e\u003ccode\u003ef925349\u003c/code\u003e\u003c/a\u003e More HTML fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/9933a0a4699f3dea91f46528a2bf54863f531c08\"\u003e\u003ccode\u003e9933a0a\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Allow reference links with backticks\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/07dfa4eb43f7a2ab3181b4f842a960a03a6c1221\"\u003e\u003ccode\u003e07dfa4e\u003c/code\u003e\u003c/a\u003e Allow reference links with backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/fb6b27a6ff90980b5bcb0cd51528a7c9dc3a93ca\"\u003e\u003ccode\u003efb6b27a\u003c/code\u003e\u003c/a\u003e Fix infinite loop when text contains multiple unclosed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/89112c293f7b399ae8808f3a06306f46601e9684\"\u003e\u003ccode\u003e89112c2\u003c/code\u003e\u003c/a\u003e Make the docs build successfully with mkdocstrings-python 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/961856ceb30623b929d8b7abdf5ed7074db7184c\"\u003e\u003ccode\u003e961856c\u003c/code\u003e\u003c/a\u003e Update link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/2b49115b1002142afbd84b3002f13c0e98a0f487\"\u003e\u003ccode\u003e2b49115\u003c/code\u003e\u003c/a\u003e Ensure nested elements inside inline comments are properly unescaped.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.8 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\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/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.8...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.3.1 (2026-01-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enormalize_url()\u003c/code\u003e: workaround for issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/467\"\u003e#467\u003c/a\u003e (UNC paths with Python \u0026lt; 3.12.5)\u003c/li\u003e\n\u003cli\u003eMETA_SCHEMA and BASE_SCHEMA paths converted to 'file' URL scheme\u003c/li\u003e\n\u003cli\u003eClean optional dependencies\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.3.0 (2026-01-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd custom XPath parser for find/findall/iterfind APIs on schemas for match\nsingleton sequence also if position is a number greater than 1 in predicate\nexpression (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove build of XSD elements and groups, using a three-state built flag for\ncomponents\u003c/li\u003e\n\u003cli\u003eExtend and fix memory tests (Python 3.14+ seems to consume more memory)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and add development support for Python 3.15\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.3.1\u003c/code\u003e_ (2026-01-17)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003enormalize_url(): workaround for issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/467\"\u003e#467\u003c/a\u003e (UNC paths with Python \u0026lt; 3.12.5)\u003c/li\u003e\n\u003cli\u003eMETA_SCHEMA and BASE_SCHEMA paths converted to 'file' URL scheme\u003c/li\u003e\n\u003cli\u003eClean optional dependencies\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ccode\u003ev4.3.0\u003c/code\u003e_ (2026-01-03)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd custom XPath parser for find/findall/iterfind APIs on schemas for match\nsingleton sequence also if position is a number greater than 1 in predicate\nexpression (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove build of XSD elements and groups, using a three-state built flag for\ncomponents\u003c/li\u003e\n\u003cli\u003eExtend and fix memory tests (Python 3.14+ seems to consume more memory)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and add development support for Python 3.15\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/commit/64b103f211f292b6e076c404dfa83e2239b1341e\"\u003e\u003ccode\u003e64b103f\u003c/code\u003e\u003c/a\u003e Add a test for meta-schema URLs and relax memory test for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/508d1a2b18f57a0bc5f959da5f219e590906ef42\"\u003e\u003ccode\u003e508d1a2\u003c/code\u003e\u003c/a\u003e Update bugfix release information and clean deps of pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/4fc64bd950dc8a15788f05210a99acc56d0782a0\"\u003e\u003ccode\u003e4fc64bd\u003c/code\u003e\u003c/a\u003e Refactor LocationPath and add a workaround for issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/467\"\u003e#467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dfec443d37df2a3cd0b2fef74f394d204d0ec90e\"\u003e\u003ccode\u003edfec443\u003c/code\u003e\u003c/a\u003e Don't serialize cached properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/91c19568f65b635a12caa228ce6e882691f15765\"\u003e\u003ccode\u003e91c1956\u003c/code\u003e\u003c/a\u003e Add caching module with class SchemaCache\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/2bfb931b757b42fd19162f6232c1fa088f2e1348\"\u003e\u003ccode\u003e2bfb931\u003c/code\u003e\u003c/a\u003e Update CI tests and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/a1d7d3c71365284fcc06b9f20cc7d48feeb2e4ce\"\u003e\u003ccode\u003ea1d7d3c\u003c/code\u003e\u003c/a\u003e Change built status of components from bool to optional bool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/ce822bd349500c29f13da109e46c5b4f5906f129\"\u003e\u003ccode\u003ece822bd\u003c/code\u003e\u003c/a\u003e Extend and fix memory tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/fa41056ef9ae6a4311f25a885d40c73a4a3c5bb6\"\u003e\u003ccode\u003efa41056\u003c/code\u003e\u003c/a\u003e Add a custom XPath parser for schema find/findall/iterfind APIs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/b237528d8a6fa99e235558be9c552f580582c99d\"\u003e\u003ccode\u003eb237528\u003c/code\u003e\u003c/a\u003e Add a test with UNC path\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colm...\n\n_Description has been truncated_","html_url":"https://github.com/SEED-platform/seed/pull/5169","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SEED-platform%2Fseed/issues/5169","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5169/packages"}},{"old_version":"1.2.2","new_version":"1.3.1","update_type":"minor","path":null,"pr_created_at":"2026-01-19T10:28:36.000Z","version_change":"1.2.2 → 1.3.1","issue":{"uuid":"3829040778","node_id":"PR_kwDOPWu_BM69-Pxm","number":35,"state":"closed","title":"Bump the minor-update group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-02T10:04:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-19T10:28:36.000Z","updated_at":"2026-02-02T10:04:38.000Z","time_to_close":1208160,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":9,"packages":[{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"numba","old_version":"0.60.0","new_version":"0.61.2","repository_url":"https://github.com/numba/numba"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"triton","old_version":"3.1.0","new_version":"3.6.0+git9844da95"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"depyf","old_version":"0.18.0","new_version":"0.20.0","repository_url":"https://github.com/thuml/depyf"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx-book-theme","old_version":"1.0.1","new_version":"1.1.4","repository_url":"https://github.com/executablebooks/sphinx-book-theme"},{"name":"sphinx-togglebutton","old_version":"0.3.2","new_version":"0.4.4","repository_url":"https://github.com/executablebooks/sphinx-togglebutton"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [numba](https://github.com/numba/numba) | `0.60.0` | `0.61.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.4.0` |\n| triton | `3.1.0` | `3.6.0+git9844da95` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [depyf](https://github.com/thuml/depyf) | `0.18.0` | `0.20.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.3.0` |\n| [sphinx-book-theme](https://github.com/executablebooks/sphinx-book-theme) | `1.0.1` | `1.1.4` |\n| [sphinx-togglebutton](https://github.com/executablebooks/sphinx-togglebutton) | `0.3.2` | `0.4.4` |\n\n\nUpdates `audioread` from 3.0.1 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/fdd0c2e7f20f3a9b9110c454a140108097236268\"\u003e\u003ccode\u003efdd0c2e\u003c/code\u003e\u003c/a\u003e Increment version to 3.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ec7b3bcb29781132b58affd1053d63da64ed9383\"\u003e\u003ccode\u003eec7b3bc\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13 (\u003ca href=\"https://redirect.github.com/beetbox/audioread/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/bfee9a74d6c389a4d60053cf1d1c6af580fae2e6\"\u003e\u003ccode\u003ebfee9a7\u003c/code\u003e\u003c/a\u003e run tests on python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/b671e436cf5c0c6006f190e3561fc680773237be\"\u003e\u003ccode\u003eb671e43\u003c/code\u003e\u003c/a\u003e Add standard-aifc and standard-sunau as dependencies for python 3.13 and above.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ef77a506b641cdeca11b1e782105e29f8f93eb81\"\u003e\u003ccode\u003eef77a50\u003c/code\u003e\u003c/a\u003e Remove legacy url\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/f13b2a2d5d59c683107eb7d9df35c54f1a2c1820\"\u003e\u003ccode\u003ef13b2a2\u003c/code\u003e\u003c/a\u003e Try using proper pypi repo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/84cd1272d498346449c972b046621b3c54d60c08\"\u003e\u003ccode\u003e84cd127\u003c/code\u003e\u003c/a\u003e Increment version to 3.1.0a1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/208562b078770dc373eb9a44554b44d8f1402773\"\u003e\u003ccode\u003e208562b\u003c/code\u003e\u003c/a\u003e Modernize package setup (\u003ca href=\"https://redirect.github.com/beetbox/audioread/issues/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/6da161102578169ce964e05b83cd5c2e8bb8e6c7\"\u003e\u003ccode\u003e6da1611\u003c/code\u003e\u003c/a\u003e Add release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ee7afcf55ae0d760a04db269e2dce6e0adb9cfd4\"\u003e\u003ccode\u003eee7afcf\u003c/code\u003e\u003c/a\u003e Modernize package setup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beetbox/audioread/compare/v3.0.1...v3.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numba` from 0.60.0 to 0.61.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numba/numba/releases\"\u003enumba's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eNumba 0.61.2\u003c/h2\u003e\n\u003cp\u003eMinor Numba release adding NumPy 2.2 support. View detailed release notes and changelog \u003ca href=\"https://numba.readthedocs.io/en/stable/release/0.61.2-notes.html\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eNumba 0.61.0\u003c/h2\u003e\n\u003cp\u003eMajor Numba release adding Python 3.13 and NumPy 2.1 support. View detailed release notes and changelog \u003ca href=\"https://numba.readthedocs.io/en/stable/release/0.61.0-notes.html\"\u003ehere\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/numba/numba/commit/1e70d8ceba56a135e046e32e1e7ad2fcd22fd8ab\"\u003e\u003ccode\u003e1e70d8c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numba/numba/issues/10032\"\u003e#10032\u003c/a\u003e from kc611/release0.61\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/746eb866a4a976ee0e9ba7cf5d9853ff74d2b908\"\u003e\u003ccode\u003e746eb86\u003c/code\u003e\u003c/a\u003e Changed release target to 0.61.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/12cb3e8fafc5b0bc331cb4c1ea703e305e4302ff\"\u003e\u003ccode\u003e12cb3e8\u003c/code\u003e\u003c/a\u003e Updated dates in version support table and release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/6aa65a8dacdac72fb19d47e6606abdb2a5ed5c27\"\u003e\u003ccode\u003e6aa65a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numba/numba/issues/10028\"\u003e#10028\u003c/a\u003e from swap357/update_release_notes_0.61.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/48ab6b115c424d3e0d65f8431e9f210c54deaf47\"\u003e\u003ccode\u003e48ab6b1\u003c/code\u003e\u003c/a\u003e update release notes to exclude 0.61.0 PRs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/d788b465371b76597ffa67d16792be0a5e21bf23\"\u003e\u003ccode\u003ed788b46\u003c/code\u003e\u003c/a\u003e update release-notes with PRs and authors list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/f2210fa2801807a9f88ed4d725df186014e18af5\"\u003e\u003ccode\u003ef2210fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numba/numba/issues/9999\"\u003e#9999\u003c/a\u003e from kc611/release0.61\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/d91b9366a7d99dc40f79ce88072c390100e1c416\"\u003e\u003ccode\u003ed91b936\u003c/code\u003e\u003c/a\u003e Added formatting changes in release message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/a22acbd59146f0960c9b0bd28a636fe1f18d862f\"\u003e\u003ccode\u003ea22acbd\u003c/code\u003e\u003c/a\u003e Updated release notes message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/bf0eadcf69496a89d6252257020c6ecdb4aa00ff\"\u003e\u003ccode\u003ebf0eadc\u003c/code\u003e\u003c/a\u003e Update docs/source/release/0.61.1-notes.rst\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numba/numba/compare/0.60.0...0.61.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.3.6 to 4.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: improve homebrew path detection by \u003ca href=\"https://github.com/daeho-ro\"\u003e\u003ccode\u003e@​daeho-ro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/370\"\u003etox-dev/platformdirs#370\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/daeho-ro\"\u003e\u003ccode\u003e@​daeho-ro\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/370\"\u003etox-dev/platformdirs#370\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/platformdirs/compare/4.3.8...4.4.0\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing examples and fix order of examples in README by \u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\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/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\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/platformdirs/compare/4.3.7...4.3.8\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.7\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChunk dependabot updates into a single PR by \u003ca href=\"https://github.com/ofek\"\u003e\u003ccode\u003e@​ofek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/311\"\u003etox-dev/platformdirs#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/330\"\u003etox-dev/platformdirs#330\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/platformdirs/compare/4.3.6...4.3.7\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\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/platformdirs/commit/c945a28a2cd2ae34154540d144e7671ed80b1c10\"\u003e\u003ccode\u003ec945a28\u003c/code\u003e\u003c/a\u003e feat: improve homebrew path detection (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/9f616e954ee35621a75843fa40180cbd6fea2670\"\u003e\u003ccode\u003e9f616e9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/5720f26595056e11516d1167185ffde135e0aa55\"\u003e\u003ccode\u003e5720f26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/848924dfbec662829225a4a1108e1a818539304a\"\u003e\u003ccode\u003e848924d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/df2e678930d48ac0cb0b019da78a069dfbeae579\"\u003e\u003ccode\u003edf2e678\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/009a3f81879f356a7af0923c2ba443756b552e1c\"\u003e\u003ccode\u003e009a3f8\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/3d194ee7ef7ce2a021a2b5fbf77bbddd171ca9a1\"\u003e\u003ccode\u003e3d194ee\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/6046533d719a8871f5f8fc4fc99c01a14b282853\"\u003e\u003ccode\u003e6046533\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/88389cef8fce1da42858a621770ce4dee8f739f9\"\u003e\u003ccode\u003e88389ce\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/82763ff0c244c7ca7b4eaa4b4336be224b385389\"\u003e\u003ccode\u003e82763ff\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `triton` from 3.1.0 to 3.6.0+git9844da95\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `depyf` from 0.18.0 to 0.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/thuml/depyf/releases\"\u003edepyf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.19.0 release with recent improvements\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd device to imports by \u003ca href=\"https://github.com/ProExpertProg\"\u003e\u003ccode\u003e@​ProExpertProg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/82\"\u003ethuml/depyf#82\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing default argument values in \u003ccode\u003epatched_load_by_key_path\u003c/code\u003e by \u003ca href=\"https://github.com/nopperl\"\u003e\u003ccode\u003e@​nopperl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/81\"\u003ethuml/depyf#81\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate test files by \u003ca href=\"https://github.com/youkaichao\"\u003e\u003ccode\u003e@​youkaichao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/83\"\u003ethuml/depyf#83\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy instruction by \u003ca href=\"https://github.com/youkaichao\"\u003e\u003ccode\u003e@​youkaichao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/84\"\u003ethuml/depyf#84\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/ProExpertProg\"\u003e\u003ccode\u003e@​ProExpertProg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/82\"\u003ethuml/depyf#82\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nopperl\"\u003e\u003ccode\u003e@​nopperl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/81\"\u003ethuml/depyf#81\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/thuml/depyf/compare/v0.18.0...v0.19.0\"\u003ehttps://github.com/thuml/depyf/compare/v0.18.0...v0.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/thuml/depyf/commit/b67e16787e8c66324e114b4f2c6024438385b242\"\u003e\u003ccode\u003eb67e167\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/91ea66d5feca12392ba9c45a08094d948514343d\"\u003e\u003ccode\u003e91ea66d\u003c/code\u003e\u003c/a\u003e update test files (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/88\"\u003e#88\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/4fd2d58b0f6361f4c39aaf26e98b94049b7e6dd6\"\u003e\u003ccode\u003e4fd2d58\u003c/code\u003e\u003c/a\u003e bugfix for list extend with argval != 1 and add DEPYF_REMOVE_TEMP env var (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/87\"\u003e#87\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/2612c16584d7360a511044a313eac02e15f46831\"\u003e\u003ccode\u003e2612c16\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/e379286a302abde2808d249ba186bbe7a8235cc0\"\u003e\u003ccode\u003ee379286\u003c/code\u003e\u003c/a\u003e fix copy instruction (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/5cde94f8fe9446c56ccb19df71dc9f887d4f948a\"\u003e\u003ccode\u003e5cde94f\u003c/code\u003e\u003c/a\u003e update test files (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/83\"\u003e#83\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/461af54b38e07df88c33f5da81970bfc82eaa325\"\u003e\u003ccode\u003e461af54\u003c/code\u003e\u003c/a\u003e Add missing default argument values in \u003ccode\u003epatched_load_by_key_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/81\"\u003e#81\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/3c95e7ac95e133bce7ef8bf6f609dda2e8f331bf\"\u003e\u003ccode\u003e3c95e7a\u003c/code\u003e\u003c/a\u003e Add device to imports (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/thuml/depyf/compare/v0.18.0...v0.20.0\"\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.0.1 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\u003ch2\u003epre-commit v4.2.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFor \u003ccode\u003elanguage: python\u003c/code\u003e first attempt a versioned python executable for the default language version before consulting a potentially unversioned \u003ccode\u003esys.executable\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3430\"\u003e#3430\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle error during conflict detection when a file is named \u0026quot;HEAD\u0026quot;\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3425\"\u003e#3425\u003c/a\u003e PR by \u003ca href=\"https://github.com/tusharsadhwani\"\u003e\u003ccode\u003e@​tusharsadhwani\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.1.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: julia\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3348\"\u003e#3348\u003c/a\u003e PR by \u003ca href=\"https://github.com/fredrikekre\"\u003e\u003ccode\u003e@​fredrikekre\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/2689\"\u003e#2689\u003c/a\u003e issue \u003ca href=\"https://github.com/jmuchovej\"\u003e\u003ccode\u003e@​jmuchovej\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable automatic toolchain switching for \u003ccode\u003elanguage: golang\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3304\"\u003e#3304\u003c/a\u003e PR by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3300\"\u003e#3300\u003c/a\u003e issue by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3149\"\u003e#3149\u003c/a\u003e issue by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: r\u003c/code\u003e installation when initiated by RStudio.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3389\"\u003e#3389\u003c/a\u003e PR by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3385\"\u003e#3385\u003c/a\u003e issue by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\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\u003ch1\u003e4.2.0 - 2025-03-18\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFor \u003ccode\u003elanguage: python\u003c/code\u003e first attempt a versioned python executable for\nthe default language version before consulting a potentially unversioned\n\u003ccode\u003esys.executable\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3430\"\u003e#3430\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle error during conflict detection when a file is named \u0026quot;HEAD\u0026quot;\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3425\"\u003e#3425\u003c/a\u003e PR by \u003ca href=\"https://github.com/tusharsadhwani\"\u003e\u003ccode\u003e@​tusharsadhwani\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.1.0 - 2025-01-20\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: julia\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3348\"\u003e#3348\u003c/a\u003e PR by \u003ca href=\"https://github.com/fredrikekre\"\u003e\u003ccode\u003e@​fredrikekre\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/2689\"\u003e#2689\u003c/a\u003e issue \u003ca href=\"https://github.com/jmuchovej\"\u003e\u003ccode\u003e@​jmuchovej\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable automatic toolchain switching for \u003ccode\u003elanguage: golang\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3304\"\u003e#3304\u003c/a\u003e PR by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3300\"\u003e#3300\u003c/a\u003e issue by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3149\"\u003e#3149\u003c/a\u003e issue by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: r\u003c/code\u003e installation when initiated by RStudio.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3389\"\u003e#3389\u003c/a\u003e PR by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3385\"\u003e#3385\u003c/a\u003e issue by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\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.0.1...v4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-book-theme` from 1.0.1 to 1.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/releases\"\u003esphinx-book-theme's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.4 - 2025-02-20\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.1.3...d3552e2524f4f8b602e9c161a5e765672d1367d1\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eENH: make the generated documentation more reproducible \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/883\"\u003e#883\u003c/a\u003e (\u003ca href=\"https://github.com/mitya57\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: make the generated gettext files reproducible \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/882\"\u003e#882\u003c/a\u003e (\u003ca href=\"https://github.com/mitya57\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: bump version for release :rocket: \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/843\"\u003e#843\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: edited russian translate \u0026quot;By\u0026quot; \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/806\"\u003e#806\u003c/a\u003e (\u003ca href=\"https://github.com/askras\"\u003e\u003ccode\u003e@​askras\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: use raw strings for math equations \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/881\"\u003e#881\u003c/a\u003e (\u003ca href=\"https://github.com/mitya57\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFIX: exclude command prompts when using copy button \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/867\"\u003e#867\u003c/a\u003e (\u003ca href=\"https://github.com/stevepiercy\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMAINT: pin PST theme version for now \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/898\"\u003e#898\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: adding explicit sphinx config into RTD config \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/897\"\u003e#897\u003c/a\u003e (\u003ca href=\"https://github.com/bsipocz\"\u003e\u003ccode\u003e@​bsipocz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: update dependabot config \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/875\"\u003e#875\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: pin pydata sphinx theme and update regression tests \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/862\"\u003e#862\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: upgrade sass \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/861\"\u003e#861\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: really drop python\u0026lt;=3.8 support \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/844\"\u003e#844\u003c/a\u003e (\u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDOCS: fix links in documentation \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/884\"\u003e#884\u003c/a\u003e (\u003ca href=\"https://github.com/choldgraf\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOCS: automatically update copyright year \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/866\"\u003e#866\u003c/a\u003e (\u003ca href=\"https://github.com/stevepiercy\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOCS: correct the option \u003ccode\u003ehtml_source_suffix\u003c/code\u003e to \u003ccode\u003ehtml_sourcelink_suffix\u003c/code\u003e \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/859\"\u003e#859\u003c/a\u003e (\u003ca href=\"https://github.com/Snoopy1866\"\u003e\u003ccode\u003e@​Snoopy1866\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther merged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild(deps-dev): Bump express from 4.18.2 to 4.21.2 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/886\"\u003e#886\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/885\"\u003e#885\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/880\"\u003e#880\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps-dev): Bump dedent from 0.7.0 to 1.5.3 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/878\"\u003e#878\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps-dev): Bump sass from 1.80.4 to 1.81.0 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/877\"\u003e#877\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump the actions group with 3 updates \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/876\"\u003e#876\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps-dev): Bump webpack from 5.92.0 to 5.96.1 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/871\"\u003e#871\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/860\"\u003e#860\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.10.0 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/857\"\u003e#857\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/808\"\u003e#808\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/graphs/contributors?from=2024-06-12\u0026amp;to=2025-02-20\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aagoose77+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aaskras+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​askras\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Absipocz+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​bsipocz\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Acholdgraf+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Adependabot+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Adylanh724+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dylanh724\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Akloczek+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Amitya57+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Anilsleh+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​nilsleh\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Apre-commit-ci+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3ASnoopy1866+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Snoopy1866\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Astevepiercy+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Awelcome+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​welcome\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/blob/master/CHANGELOG.md\"\u003esphinx-book-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev1.1.2 -- 2024-02-13\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.1.1...3da24da74f6042599fe6c9e2d612f5cbdef42280\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eENH: bump version \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/818\"\u003e#818\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: correct event-handler signature \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/817\"\u003e#817\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/graphs/contributors?from=2024-02-13\u0026amp;to=2024-02-13\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aagoose77+updated%3A2024-02-13..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1 -- 2024-02-13\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.1.0...9335ab99b0bc77b826cb2c5afcef3432f14e8780\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eENH: bump version for 1.1.1 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/815\"\u003e#815\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: use \u003ccode\u003econfig-inited\u003c/code\u003e event to register config \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/814\"\u003e#814\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther merged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild(deps): Bump actions/setup-python from 4 to 5 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/803\"\u003e#803\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/801\"\u003e#801\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/graphs/contributors?from=2023-12-19\u0026amp;to=2024-02-13\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aagoose77+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Acholdgraf+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Adependabot+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aghisvail+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ghisvail\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Apre-commit-ci+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Awelcome+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​welcome\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0 -- 2023-12-19\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.0.1...v1.1.0\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\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/executablebooks/sphinx-book-theme/commit/23f6936ae956428463f2ec97eebc2fe68bdd344b\"\u003e\u003ccode\u003e23f6936\u003c/code\u003e\u003c/a\u003e chore: bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/d3552e2524f4f8b602e9c161a5e765672d1367d1\"\u003e\u003ccode\u003ed3552e2\u003c/code\u003e\u003c/a\u003e MAINT: pin PST theme version for now (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/898\"\u003e#898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/ee815b18eeb50b5becb356cce93251030d3565bd\"\u003e\u003ccode\u003eee815b1\u003c/code\u003e\u003c/a\u003e CI: adding explicit sphinx config into RTD config (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/897\"\u003e#897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/8822eeff673f14e627925a51070d5eeaf3360dbe\"\u003e\u003ccode\u003e8822eef\u003c/code\u003e\u003c/a\u003e really drop python\u0026lt;=3.8 support (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/40f7c41fc7a32cb428e1195c86fa156d8a23ce36\"\u003e\u003ccode\u003e40f7c41\u003c/code\u003e\u003c/a\u003e Build(deps): Bump the actions group with 3 updates (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/876\"\u003e#876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/1cd3ca6f39dd51702d581b2db1b705865104e887\"\u003e\u003ccode\u003e1cd3ca6\u003c/code\u003e\u003c/a\u003e Build(deps-dev): Bump express from 4.18.2 to 4.21.2 (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/886\"\u003e#886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/c9a7d49bc5d996b1f4761e748bf4f52e26b0f257\"\u003e\u003ccode\u003ec9a7d49\u003c/code\u003e\u003c/a\u003e Build(deps-dev): Bump sass from 1.80.4 to 1.81.0 (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/877\"\u003e#877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/7d118ba19d1ff842775c7acce90383fefb9da081\"\u003e\u003ccode\u003e7d118ba\u003c/code\u003e\u003c/a\u003e Build(deps-dev): Bump dedent from 0.7.0 to 1.5.3 (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/2732526202b261b3de44c5a4dab425e37f9bd18f\"\u003e\u003ccode\u003e2732526\u003c/code\u003e\u003c/a\u003e Fix links in documentation (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/884\"\u003e#884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/e2eea6fa696efa47a37760e2e7c53f778a143691\"\u003e\u003ccode\u003ee2eea6f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/885\"\u003e#885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.0.1...v1.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-togglebutton` from 0.3.2 to 0.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/releases\"\u003esphinx-togglebutton's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.4.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate release workflow and bump version to 0.4.4 by \u003ca href=\"https://github.com/douden\"\u003e\u003ccode\u003e@​douden\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/pull/73\"\u003eexecutablebooks/sphinx-togglebutton#73\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/compare/v0.4.3...v0.4.4\"\u003ehttps://github.com/executablebooks/sphinx-togglebutton/compare/v0.4.3...v0.4.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.4.3\u003c/h2\u003e\n\u003ch2\u003e0.4.3 - 2026-01-14\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded missing information in \u003ccode\u003etests.yml\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/compare/v0.4.2...v0.4.3\"\u003ehttps://github.com/executablebooks/sphinx-togglebutton/compare/v0.4.2...v0.4.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.4.2\u003c/h2\u003e\n\u003ch2\u003e0.4.2 - 2026-01-14\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnhanced \u003ccode\u003esetup.cfg\u003c/code\u003e with complete metadata.\u003c/li\u003e\n\u003cli\u003eSimplified \u003ccode\u003esetup.py\u003c/code\u003e to just call \u003ccode\u003esetup()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/compare/v0.4.1...v0.4.2\"\u003ehttps://github.com/executablebooks/sphinx-togglebutton/compare/v0.4.1...v0.4.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.4.1\u003c/h2\u003e\n\u003ch2\u003e0.4.1 - 2026-01-14\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the release workflow to use a recent Python version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/compare/v0.4.0...v0.4.1\"\u003ehttps://github.com/executablebooks/sphinx-togglebutton/compare/v0.4.0...v0.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.4.0\u003c/h2\u003e\n\u003ch2\u003e0.4.0 - 2026-01-14\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/compare/v0.3.2...v0.4.0\"\u003ehttps://github.com/executablebooks/sphinx-togglebutton/compare/v0.3.2...v0.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for more languages in toggle button text (see README for full list) \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/pull/66\"\u003e#66\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded new functions (syncToggleHint, syncAllToggleHints) to dynamically update toggle button hints based on the current state  \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/pull/66\"\u003e#66\u003c/a\u003e. This allows developers to change the open or closed state of an element and have the button hint text update accordingly automatically.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate togglebutton.js to use an admonition's existing ID if present, instead of always generating a new one \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/pull/66\"\u003e#66\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\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/executablebooks/sphinx-togglebutton/blob/master/CHANGELOG.md\"\u003esphinx-togglebutton's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.4 - 2026-01-14\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade used version in release workflow to the latest available.\u003c/li\u003e\n\u003cli\u003eCorrect build command in \u003ccode\u003etests.yml\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.4.3 - 2026-01-14\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded missing information in \u003ccode\u003etests.yml\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.4.2 - 2026-01-14\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnhanced \u003ccode\u003esetup.cfg\u003c/code\u003e with complete metadata.\u003c/li\u003e\n\u003cli\u003eSimplified \u003ccode\u003esetup.py\u003c/code\u003e to just call \u003ccode\u003esetup()\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.4.1 - 2026-01-14\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the release workflow to use a recent Python version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.4.0 - 2026-01-14\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for more languages in toggle button text (see README for full list) \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/pull/66\"\u003e#66\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded new functions (syncToggleHint, syncAllToggleHints) to dynamically update toggle button hints based on the current state  \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/pull/66\"\u003e#66\u003c/a\u003e. This allows developers to change the open or closed state of an element and have the button hint text update accordingly automatically.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate togglebutton.js to use an admonition's existing ID if present, instead of always generating a new one \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/pull/66\"\u003e#66\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/executablebooks/sphinx-togglebutton/commit/ec20337132f82111541874c155f7f9ffa7d1c9a6\"\u003e\u003ccode\u003eec20337\u003c/code\u003e\u003c/a\u003e Update release workflow and bump version to 0.4.4 (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/73\"\u003e#73\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/commit/946503229a6d0941f340fbc9a039396a76479d1f\"\u003e\u003ccode\u003e9465032\u003c/code\u003e\u003c/a\u003e Prep rls 0.4.3 (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/72\"\u003e#72\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/commit/20245cb90eeb674f342adc348319c32188984a86\"\u003e\u003ccode\u003e20245cb\u003c/code\u003e\u003c/a\u003e Update to v0.4.2 and improve packaging metadata (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/71\"\u003e#71\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/commit/b869f69f5dfc822857ccd0f879ac0fdd7149f72a\"\u003e\u003ccode\u003eb869f69\u003c/code\u003e\u003c/a\u003e Bump version to 0.4.1 and update release workflow (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/70\"\u003e#70\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/commit/aa94ac014a69566ba3f3175fefdc47983bb3140a\"\u003e\u003ccode\u003eaa94ac0\u003c/code\u003e\u003c/a\u003e 🚀 RELEASE: version 0.4.0 (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/69\"\u003e#69\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/commit/5f4c8f70c9dc0cce688cca4c7fae58a5d5389d0f\"\u003e\u003ccode\u003e5f4c8f7\u003c/code\u003e\u003c/a\u003e 👌 IMPROVE: Add i18n support \u0026amp; general improvements (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/66\"\u003e#66\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/commit/f301181eba2b307340614e6c2f46a6e93153a88a\"\u003e\u003ccode\u003ef301181\u003c/code\u003e\u003c/a\u003e Fix dropdown under a code cell in dark mode (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/64\"\u003e#64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/commit/9a8272d50e1e7a7089c2ea82d1f0f2f59180b853\"\u003e\u003ccode\u003e9a8272d\u003c/code\u003e\u003c/a\u003e A11y: set aria-expanded to the toggle button. (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/61\"\u003e#61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/commit/f468ca6c5fd4caf0085a97f84794d733794f3614\"\u003e\u003ccode\u003ef468ca6\u003c/code\u003e\u003c/a\u003e Display hide hint text when admonition is expanded (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/59\"\u003e#59\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/commit/0a356c20e0083a4f6fbffeb504566f242131cb00\"\u003e\u003ccode\u003e0a356c2\u003c/code\u003e\u003c/a\u003e FIX: dropdown toggle height when closed (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-togglebutton/issues/57\"\u003e#57\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/executablebooks/sphinx-togglebutton/compare/v0.3.2...v0.4.4\"\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/jurgen-paul/TACTICAL-LEGEND-2/pull/35","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jurgen-paul%2FTACTICAL-LEGEND-2/issues/35","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/35/packages"}},{"old_version":"1.2.2","new_version":"1.3.1","update_type":"minor","path":null,"pr_created_at":"2026-01-19T07:22:57.000Z","version_change":"1.2.2 → 1.3.1","issue":{"uuid":"3828367906","node_id":"PR_kwDOQDraYs698EM9","number":12,"state":"open","title":"deps: bump the prod-deps group across 1 directory with 37 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-19T07:22:57.000Z","updated_at":"2026-01-26T08:12:43.469Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":37,"packages":[{"name":"django","old_version":"4.2.24","new_version":"6.0.1","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"django-pint","old_version":"0.7.3","new_version":"1.0.3","repository_url":"https://github.com/CarliJoy/django-pint"},{"name":"django-post-office","old_version":"3.10.1","new_version":"3.11.0","repository_url":"https://github.com/ui/django-post_office"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.14","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.3.1","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-treebeard","old_version":"4.7.1","new_version":"4.8.0","repository_url":"https://github.com/django-treebeard/django-treebeard"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"importlib-metadata","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"boto3","old_version":"1.40.27","new_version":"1.42.30","repository_url":"https://github.com/boto/boto3"},{"name":"django-ses","old_version":"4.4.0","new_version":"4.6.0","repository_url":"https://github.com/django-ses/django-ses"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.34.1","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.1","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"40.1.2","repository_url":"https://github.com/joke2k/faker"},{"name":"vcrpy","old_version":"7.0.0","new_version":"8.1.1","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.1.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.150.2","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 37 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `6.0.1` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.2` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [django-pint](https://github.com/CarliJoy/django-pint) | `0.7.3` | `1.0.3` |\n| [django-post-office](https://github.com/ui/django-post_office) | `3.10.1` | `3.11.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.14` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.3.1` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-treebeard](https://github.com/django-treebeard/django-treebeard) | `4.7.1` | `4.8.0` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.0` | `8.7.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.42.30` |\n| [django-ses](https://github.com/django-ses/django-ses) | `4.4.0` | `4.6.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.1` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.34.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.1` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `40.1.2` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `7.0.0` | `8.1.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.1.0` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `3.0.2` | `3.1.0` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.150.2` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/85eb963c5297fb285aecf4a90c97141a1b9c5bee\"\u003e\u003ccode\u003e85eb963\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac4a5509e3a6f2e1099ea659e0c1eb3ed4e9e00f\"\u003e\u003ccode\u003eac4a550\u003c/code\u003e\u003c/a\u003e [6.0.x] Added release date for 6.0.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/dcfc5b04ee8af8284e772a2f3619cd8affb1c07a\"\u003e\u003ccode\u003edcfc5b0\u003c/code\u003e\u003c/a\u003e [6.0.x] Added release date for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/42bab76258162e1df77d080aa69cac5d803ae90a\"\u003e\u003ccode\u003e42bab76\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36843\"\u003e#36843\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django/django/issues/36793\"\u003e#36793\u003c/a\u003e -- Reverted \u0026quot;Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/27489\"\u003e#27489\u003c/a\u003e -- Renamed permissions...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/764af478be8c25c186d27031c50c9a1d0697781b\"\u003e\u003ccode\u003e764af47\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/33647\"\u003e#33647\u003c/a\u003e -- Fixed silent data truncation in bulk_create on Postgres.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b7b5465b1c026dda7de646fca15ca1e97886d021\"\u003e\u003ccode\u003eb7b5465\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36829\"\u003e#36829\u003c/a\u003e -- Reverted value of ClearableFileInput.use_fieldset to ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/90daa655486c7fc69e9dad41c5e96f00339a3b9b\"\u003e\u003ccode\u003e90daa65\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/30515\"\u003e#30515\u003c/a\u003e -- Documented resolve_url() in docs/topics/http/shortcut...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d35daf8600a66c0ff20e36f82969df61a7fc4981\"\u003e\u003ccode\u003ed35daf8\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36796\"\u003e#36796\u003c/a\u003e -- Handled lazy routes correctly in RoutePattern.match().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/16107ab710dc23d5ea0aa17da6bf29fe89b61bb0\"\u003e\u003ccode\u003e16107ab\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36810\"\u003e#36810\u003c/a\u003e -- Avoided infinite recursion in LazyNonce.\u003cstrong\u003erepr\u003c/strong\u003e().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/774543ed4feb37916071e81c0d0b81ba514333fa\"\u003e\u003ccode\u003e774543e\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36305\"\u003e#36305\u003c/a\u003e -- Added documentation indentation guidelines to contrib...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by \u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Revoked tasks now immediately update backend status to REVOKED by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9869\"\u003ecelery/celery#9869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10049\"\u003ecelery/celery#10049\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/celery/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option by \u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10020\"\u003ecelery/celery#10020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup by \u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereliable prefork detection by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10023\"\u003ecelery/celery#10023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter coverage by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10029\"\u003ecelery/celery#10029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example by \u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10032\"\u003ecelery/celery#10032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10033\"\u003ecelery/celery#10033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10037\"\u003ecelery/celery#10037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/celery/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2026-01-04\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string ([#10045](https://github.com/celery/celery/issues/10045))\n- Bugfix: Revoked tasks now immediately update backend status to REVOKED ([#9869](https://github.com/celery/celery/issues/9869))\n- Prepare for release: v5.6.2 ([#10049](https://github.com/celery/celery/issues/10049))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-12-29\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10013\"\u003e#10013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9986\"\u003e#9986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10020\"\u003e#10020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereliable prefork detection (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10023\"\u003e#10023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebetter coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10030\"\u003e#10030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10032\"\u003e#10032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6a43c846f183ef0cbade24f4b9a8f7a6ea113b44\"\u003e\u003ccode\u003e6a43c84\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10049\"\u003e#10049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/333a82f746734151c5cbe848916085455b0a3748\"\u003e\u003ccode\u003e333a82f\u003c/code\u003e\u003c/a\u003e Bugfix: Revoked tasks now immediately update backend status to REVOKED (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9869\"\u003e#9869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/9d6ab110d947270c4edf0b42454266d2954e653d\"\u003e\u003ccode\u003e9d6ab11\u003c/code\u003e\u003c/a\u003e Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeEr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21dbc73f81d2fae058de49e665afaa1cd92da5c0\"\u003e\u003ccode\u003e21dbc73\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/ba20bed7723c684d12ddd62d6a7c0c0d901b3351\"\u003e\u003ccode\u003eba20bed\u003c/code\u003e\u003c/a\u003e Only use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21675299bc2d10c648448ec5221136e07c1eec1a\"\u003e\u003ccode\u003e2167529\u003c/code\u003e\u003c/a\u003e Stop importing pytest_subtests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0527296acb1f1790788301d4395ba6d5ce2a9704\"\u003e\u003ccode\u003e0527296\u003c/code\u003e\u003c/a\u003e Bump google-cloud-firestore from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5f8659bdba4561796d66e938a1e2c71d4489562f\"\u003e\u003ccode\u003e5f8659b\u003c/code\u003e\u003c/a\u003e Clarify 'result_extended' setting usage in tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f19db7008682c782d85e69b5ce736970491752ea\"\u003e\u003ccode\u003ef19db70\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10028\"\u003e#10028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6da72bde60553a1c350eef1e17d834d004ed099d\"\u003e\u003ccode\u003e6da72bd\u003c/code\u003e\u003c/a\u003e better coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on 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/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.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 `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 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/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-pint` from 0.7.3 to 1.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CarliJoy/django-pint/releases\"\u003edjango-pint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect minimal Django version to 5.2 in pyproject.toml\u003c/li\u003e\n\u003cli\u003eFix documentation builds\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFix PyPI signatures\u003c/h2\u003e\n\u003cp\u003eFix broken pipeline for PyPI Sigstore uploads. No source code changes.\u003c/p\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cp\u003eFix a problem with the release pipeline. No source code changes.\u003c/p\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMakefile for easier dev setup by \u003ca href=\"https://github.com/mmarras\"\u003e\u003ccode\u003e@​mmarras\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/100\"\u003eCarliJoy/django-pint#100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etry unit conversion instead of literal dimensionality check \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/99\"\u003e#99\u003c/a\u003e by \u003ca href=\"https://github.com/mmarras\"\u003e\u003ccode\u003e@​mmarras\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/101\"\u003eCarliJoy/django-pint#101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003econvert numeric types to str before calling Decimal by \u003ca href=\"https://github.com/SamuelJennings\"\u003e\u003ccode\u003e@​SamuelJennings\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/108\"\u003eCarliJoy/django-pint#108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate to pyproject and ruff by \u003ca href=\"https://github.com/CarliJoy\"\u003e\u003ccode\u003e@​CarliJoy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/118\"\u003eCarliJoy/django-pint#118\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/mmarras\"\u003e\u003ccode\u003e@​mmarras\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/100\"\u003eCarliJoy/django-pint#100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Adiorz\"\u003e\u003ccode\u003e@​Adiorz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/pull/117\"\u003eCarliJoy/django-pint#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CarliJoy/django-pint/compare/v0.7.3...v1.0.0\"\u003ehttps://github.com/CarliJoy/django-pint/compare/v0.7.3...v1.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CarliJoy/django-pint/blob/main/CHANGELOG.rst\"\u003edjango-pint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion 1.0.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect minimal Django version to 5.2 in pyproject.toml\u003c/li\u003e\n\u003cli\u003eFix documentation builds\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix broken pipeline for PyPI Sigstore uploads. No source code changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix Problem in Publish Pipeline using old upload-artifact (no source code changes)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 1.0.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eStart following \u003ccode\u003eSemVer \u0026lt;https://semver.org/spec/v2.0.0.html\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eConvert numeric types to str before calling Decimal \u003ccode\u003e[#101](https://github.com/CarliJoy/django-pint/issues/101) by @mmarra \u0026lt;https://github.com/CarliJoy/django-pint/pull/101\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eTry unit conversion instead of literal dimensionality check \u003ccode\u003e[#108](https://github.com/CarliJoy/django-pint/issues/108)  by @SamuelJennings \u0026lt;https://github.com/CarliJoy/django-pint/pull/108\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8 and 3.9 and Django 3.2\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12, 3.13 and 3.14 and Django 6.0 \u003ccode\u003e[#116](https://github.com/CarliJoy/django-pint/issues/116) by @Adiorz \u0026lt;https://github.com/CarliJoy/django-pint/pull/117\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eModernize project setup: Use \u003ccode\u003epyproject.toml\u003c/code\u003e only and \u003ccode\u003eruff\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.7.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix conversion of number input to DecimalField (\u003ccode\u003eissue [#106](https://github.com/CarliJoy/django-pint/issues/106) \u0026lt;https://github.com/CarliJoy/django-pint/issues/106\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.7.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix wrong unit display in widget (\u003ccode\u003eissue [#43](https://github.com/CarliJoy/django-pint/issues/43) \u0026lt;https://github.com/CarliJoy/django-pint/issues/43\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.7.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003edrop support for Django (\u0026lt;3.2) and Python Versions (\u0026lt;3.7) as they reached EOL\u003c/li\u003e\n\u003cli\u003eadd \u003ccode\u003ePositiveIntegerQuantityField\u003c/code\u003e (\u003ccode\u003emerge request [#39](https://github.com/CarliJoy/django-pint/issues/39) from jwygoda\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003efix display of negative and scientific numbers in Widget (\u003ccode\u003emerger request [#41](https://github.com/CarliJoy/django-pint/issues/41) from mikeford3\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.6.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix error with Django 3.2 (\u003ccode\u003eissue [#36](https://github.com/CarliJoy/django-pint/issues/36)\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eremove PrecisionError\u003c/li\u003e\n\u003cli\u003erestructure function a bit, add more type annotations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.6.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eonly a internal technical release as the PyPi token had to be removed\ndue to security breach before and no new token was set before\nreleasing 0.6.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eVersion 0.6.1\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/CarliJoy/django-pint/commit/67fa3b9f7af927bedf810fc8694d72452b17fbed\"\u003e\u003ccode\u003e67fa3b9\u003c/code\u003e\u003c/a\u003e Fix minimal django version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/cdccb655abc7988dda9d1df95ce2087fb78c9c83\"\u003e\u003ccode\u003ecdccb65\u003c/code\u003e\u003c/a\u003e Fix docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/dbc1df925da844c730945c2d580317353aa610d3\"\u003e\u003ccode\u003edbc1df9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/d8912bec27d2f8edcb3debd6aa0fc8883c1e8312\"\u003e\u003ccode\u003ed8912be\u003c/code\u003e\u003c/a\u003e Publish Pipeline: Use newer version of sigstore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/26d263a1d4f0b6d1bf1c04e7824560188d8448d5\"\u003e\u003ccode\u003e26d263a\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/bf21c31770a0cb82714221f59d3f57e93f852ca5\"\u003e\u003ccode\u003ebf21c31\u003c/code\u003e\u003c/a\u003e Fix publish pipeline: Use upload artifacts version 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/3a079f2b24145052178a4a6bcdb53d091c6d3786\"\u003e\u003ccode\u003e3a079f2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/118\"\u003e#118\u003c/a\u003e from CarliJoy/migrate_to_pyproject_and_ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/a302da5319f8f88f64ead260a645942392d36532\"\u003e\u003ccode\u003ea302da5\u003c/code\u003e\u003c/a\u003e prepare new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/68b6277a88d1540777c1aefc787ab7530eb2d5d4\"\u003e\u003ccode\u003e68b6277\u003c/code\u003e\u003c/a\u003e Modernize: use pyproject.toml only and ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CarliJoy/django-pint/commit/599410c070a277699e750ad27dc5ebb765a832d5\"\u003e\u003ccode\u003e599410c\u003c/code\u003e\u003c/a\u003e feat: upgrade python up to 3.14 and django up to 6.0 (\u003ca href=\"https://redirect.github.com/CarliJoy/django-pint/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/CarliJoy/django-pint/compare/v0.7.3...v1.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-post-office` from 3.10.1 to 3.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ui/django-post_office/releases\"\u003edjango-post-office's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Python 3.14 and Django 6.0 compatibility. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ui/django-post_office/blob/master/CHANGELOG.md\"\u003edjango-post-office's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/825af68a79bce78acb18c945d1f3acd5935a975b\"\u003e\u003ccode\u003e825af68\u003c/code\u003e\u003c/a\u003e Bump version to 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/99be3b50a904d84f35fecb14f6c64575611a2e8a\"\u003e\u003ccode\u003e99be3b5\u003c/code\u003e\u003c/a\u003e Delete publish.yml (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/a360b7946a0b8a777e0764ab7423749f7686716b\"\u003e\u003ccode\u003ea360b79\u003c/code\u003e\u003c/a\u003e Improve tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/fe7c583512845d31685245b783a502bfc221c0c6\"\u003e\u003ccode\u003efe7c583\u003c/code\u003e\u003c/a\u003e Python314 fix (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0556f5eaaffbbbb29bd3db2ad0c2ef2086595971\"\u003e\u003ccode\u003e0556f5e\u003c/code\u003e\u003c/a\u003e Updated test.yml so tests don't get triggered twice (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/00ddbc165e597af2967fa3fcd3f34a66d0659ae3\"\u003e\u003ccode\u003e00ddbc1\u003c/code\u003e\u003c/a\u003e Webhooks (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/936d1ac816ffd3cf734bd77f0bb7ec17082793f3\"\u003e\u003ccode\u003e936d1ac\u003c/code\u003e\u003c/a\u003e Updated README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/91fbc6c28be60288961521520581d20745b3320c\"\u003e\u003ccode\u003e91fbc6c\u003c/code\u003e\u003c/a\u003e Webhook handlers (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0f68aaf444779682ea3d8806a5f46dea1a753e08\"\u003e\u003ccode\u003e0f68aaf\u003c/code\u003e\u003c/a\u003e Merge branch 'webhooks'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/5b7fdf9989517b1e740cc725ae635833dc376a12\"\u003e\u003ccode\u003e5b7fdf9\u003c/code\u003e\u003c/a\u003e Move tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ui/django-post_office/compare/v3.10.1...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.14\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix missing swagger-ui sourcemaps (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/950\"\u003e#950\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e1.21.12\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Bring the bundled swagger ui up to date (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/944\"\u003e#944\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update the logout button to use a POST request. (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/945\"\u003e#945\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a live demo domain (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/946\"\u003e#946\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Handle annotations that are not available at runtime (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/941\"\u003e#941\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.14\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.13\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix missing swagger-ui sourcemaps (:pr:\u003ccode\u003e950\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.12\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Bring the bundled swagger ui up to date (:pr:\u003ccode\u003e944\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update the logout button to use a POST request. (:pr:\u003ccode\u003e945\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a live demo domain (:pr:\u003ccode\u003e946\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Handle annotations that are not available at runtime (:pr:\u003ccode\u003e941\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/7dceb2783db31631785cd15866c9b44540accf9f\"\u003e\u003ccode\u003e7dceb27\u003c/code\u003e\u003c/a\u003e Add version 1.21.14 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/952\"\u003e#952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/763cdd6473eb963ad36987088e697cfd4f744acc\"\u003e\u003ccode\u003e763cdd6\u003c/code\u003e\u003c/a\u003e Add version 1.21.13 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/951\"\u003e#951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a0559fcacd996b76fbbb5ea0d70aa5c314f06e0c\"\u003e\u003ccode\u003ea0559fc\u003c/code\u003e\u003c/a\u003e Add missing swagger-ui sourcemaps (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/950\"\u003e#950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/2bf74d0789b40aafa638c8fc1d4e25ea8340f530\"\u003e\u003ccode\u003e2bf74d0\u003c/code\u003e\u003c/a\u003e Add version 1.21.12 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/948\"\u003e#948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/b421e89667932159562652d3639368667e5d89d9\"\u003e\u003ccode\u003eb421e89\u003c/code\u003e\u003c/a\u003e swagger ui fix (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/944\"\u003e#944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/40fee2bd8be59bb1b112419fdb79cd9a09745306\"\u003e\u003ccode\u003e40fee2b\u003c/code\u003e\u003c/a\u003e Add live demo domain and environment variables (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/1785b84fe129382595790f390f2b983f62b45271\"\u003e\u003ccode\u003e1785b84\u003c/code\u003e\u003c/a\u003e Update logout button to use POST request. (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0522cc1d9b12df97c2b01cb94ad1587933e8d52c\"\u003e\u003ccode\u003e0522cc1\u003c/code\u003e\u003c/a\u003e Rename github actions files to .yaml (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/3a381234c9a6986bbd44867632ff3cdc78ffe352\"\u003e\u003ccode\u003e3a38123\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/943\"\u003e#943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/b252a0d8f8f87b9ef6417827ae631cf11a6262a1\"\u003e\u003ccode\u003eb252a0d\u003c/code\u003e\u003c/a\u003e Handle annotations not available at runtime (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/941\"\u003e#941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (def...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"}},{"old_version":"1.2.2","new_version":"1.3.1","update_type":"minor","path":null,"pr_created_at":"2026-01-13T04:16:48.000Z","version_change":"1.2.2 → 1.3.1","issue":{"uuid":"3807014421","node_id":"PR_kwDOQSc-Vc681ggg","number":12,"state":"closed","title":"Bump the minor-update group across 1 directory with 8 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-20T00:41:58.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-13T04:16:48.000Z","updated_at":"2026-01-20T00:41:59.000Z","time_to_close":591910,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":8,"packages":[{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"numba","old_version":"0.60.0","new_version":"0.61.2","repository_url":"https://github.com/numba/numba"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"triton","old_version":"3.1.0","new_version":"3.6.0+git9844da95"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"depyf","old_version":"0.18.0","new_version":"0.20.0","repository_url":"https://github.com/thuml/depyf"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx-book-theme","old_version":"1.0.1","new_version":"1.1.4","repository_url":"https://github.com/executablebooks/sphinx-book-theme"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 8 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [numba](https://github.com/numba/numba) | `0.60.0` | `0.61.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.4.0` |\n| triton | `3.1.0` | `3.6.0+git9844da95` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [depyf](https://github.com/thuml/depyf) | `0.18.0` | `0.20.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.3.0` |\n| [sphinx-book-theme](https://github.com/executablebooks/sphinx-book-theme) | `1.0.1` | `1.1.4` |\n\n\nUpdates `audioread` from 3.0.1 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/fdd0c2e7f20f3a9b9110c454a140108097236268\"\u003e\u003ccode\u003efdd0c2e\u003c/code\u003e\u003c/a\u003e Increment version to 3.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ec7b3bcb29781132b58affd1053d63da64ed9383\"\u003e\u003ccode\u003eec7b3bc\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13 (\u003ca href=\"https://redirect.github.com/beetbox/audioread/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/bfee9a74d6c389a4d60053cf1d1c6af580fae2e6\"\u003e\u003ccode\u003ebfee9a7\u003c/code\u003e\u003c/a\u003e run tests on python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/b671e436cf5c0c6006f190e3561fc680773237be\"\u003e\u003ccode\u003eb671e43\u003c/code\u003e\u003c/a\u003e Add standard-aifc and standard-sunau as dependencies for python 3.13 and above.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ef77a506b641cdeca11b1e782105e29f8f93eb81\"\u003e\u003ccode\u003eef77a50\u003c/code\u003e\u003c/a\u003e Remove legacy url\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/f13b2a2d5d59c683107eb7d9df35c54f1a2c1820\"\u003e\u003ccode\u003ef13b2a2\u003c/code\u003e\u003c/a\u003e Try using proper pypi repo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/84cd1272d498346449c972b046621b3c54d60c08\"\u003e\u003ccode\u003e84cd127\u003c/code\u003e\u003c/a\u003e Increment version to 3.1.0a1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/208562b078770dc373eb9a44554b44d8f1402773\"\u003e\u003ccode\u003e208562b\u003c/code\u003e\u003c/a\u003e Modernize package setup (\u003ca href=\"https://redirect.github.com/beetbox/audioread/issues/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/6da161102578169ce964e05b83cd5c2e8bb8e6c7\"\u003e\u003ccode\u003e6da1611\u003c/code\u003e\u003c/a\u003e Add release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beetbox/audioread/commit/ee7afcf55ae0d760a04db269e2dce6e0adb9cfd4\"\u003e\u003ccode\u003eee7afcf\u003c/code\u003e\u003c/a\u003e Modernize package setup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beetbox/audioread/compare/v3.0.1...v3.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numba` from 0.60.0 to 0.61.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numba/numba/releases\"\u003enumba's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eNumba 0.61.2\u003c/h2\u003e\n\u003cp\u003eMinor Numba release adding NumPy 2.2 support. View detailed release notes and changelog \u003ca href=\"https://numba.readthedocs.io/en/stable/release/0.61.2-notes.html\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eNumba 0.61.0\u003c/h2\u003e\n\u003cp\u003eMajor Numba release adding Python 3.13 and NumPy 2.1 support. View detailed release notes and changelog \u003ca href=\"https://numba.readthedocs.io/en/stable/release/0.61.0-notes.html\"\u003ehere\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/numba/numba/commit/1e70d8ceba56a135e046e32e1e7ad2fcd22fd8ab\"\u003e\u003ccode\u003e1e70d8c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numba/numba/issues/10032\"\u003e#10032\u003c/a\u003e from kc611/release0.61\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/746eb866a4a976ee0e9ba7cf5d9853ff74d2b908\"\u003e\u003ccode\u003e746eb86\u003c/code\u003e\u003c/a\u003e Changed release target to 0.61.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/12cb3e8fafc5b0bc331cb4c1ea703e305e4302ff\"\u003e\u003ccode\u003e12cb3e8\u003c/code\u003e\u003c/a\u003e Updated dates in version support table and release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/6aa65a8dacdac72fb19d47e6606abdb2a5ed5c27\"\u003e\u003ccode\u003e6aa65a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numba/numba/issues/10028\"\u003e#10028\u003c/a\u003e from swap357/update_release_notes_0.61.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/48ab6b115c424d3e0d65f8431e9f210c54deaf47\"\u003e\u003ccode\u003e48ab6b1\u003c/code\u003e\u003c/a\u003e update release notes to exclude 0.61.0 PRs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/d788b465371b76597ffa67d16792be0a5e21bf23\"\u003e\u003ccode\u003ed788b46\u003c/code\u003e\u003c/a\u003e update release-notes with PRs and authors list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/f2210fa2801807a9f88ed4d725df186014e18af5\"\u003e\u003ccode\u003ef2210fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numba/numba/issues/9999\"\u003e#9999\u003c/a\u003e from kc611/release0.61\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/d91b9366a7d99dc40f79ce88072c390100e1c416\"\u003e\u003ccode\u003ed91b936\u003c/code\u003e\u003c/a\u003e Added formatting changes in release message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/a22acbd59146f0960c9b0bd28a636fe1f18d862f\"\u003e\u003ccode\u003ea22acbd\u003c/code\u003e\u003c/a\u003e Updated release notes message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numba/numba/commit/bf0eadcf69496a89d6252257020c6ecdb4aa00ff\"\u003e\u003ccode\u003ebf0eadc\u003c/code\u003e\u003c/a\u003e Update docs/source/release/0.61.1-notes.rst\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numba/numba/compare/0.60.0...0.61.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.3.6 to 4.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: improve homebrew path detection by \u003ca href=\"https://github.com/daeho-ro\"\u003e\u003ccode\u003e@​daeho-ro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/370\"\u003etox-dev/platformdirs#370\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/daeho-ro\"\u003e\u003ccode\u003e@​daeho-ro\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/370\"\u003etox-dev/platformdirs#370\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/platformdirs/compare/4.3.8...4.4.0\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing examples and fix order of examples in README by \u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\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/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\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/platformdirs/compare/4.3.7...4.3.8\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.7\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChunk dependabot updates into a single PR by \u003ca href=\"https://github.com/ofek\"\u003e\u003ccode\u003e@​ofek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/311\"\u003etox-dev/platformdirs#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/330\"\u003etox-dev/platformdirs#330\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/platformdirs/compare/4.3.6...4.3.7\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\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/platformdirs/commit/c945a28a2cd2ae34154540d144e7671ed80b1c10\"\u003e\u003ccode\u003ec945a28\u003c/code\u003e\u003c/a\u003e feat: improve homebrew path detection (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/9f616e954ee35621a75843fa40180cbd6fea2670\"\u003e\u003ccode\u003e9f616e9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/5720f26595056e11516d1167185ffde135e0aa55\"\u003e\u003ccode\u003e5720f26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/848924dfbec662829225a4a1108e1a818539304a\"\u003e\u003ccode\u003e848924d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/df2e678930d48ac0cb0b019da78a069dfbeae579\"\u003e\u003ccode\u003edf2e678\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/009a3f81879f356a7af0923c2ba443756b552e1c\"\u003e\u003ccode\u003e009a3f8\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/3d194ee7ef7ce2a021a2b5fbf77bbddd171ca9a1\"\u003e\u003ccode\u003e3d194ee\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/6046533d719a8871f5f8fc4fc99c01a14b282853\"\u003e\u003ccode\u003e6046533\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/88389cef8fce1da42858a621770ce4dee8f739f9\"\u003e\u003ccode\u003e88389ce\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/82763ff0c244c7ca7b4eaa4b4336be224b385389\"\u003e\u003ccode\u003e82763ff\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `triton` from 3.1.0 to 3.6.0+git9844da95\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `depyf` from 0.18.0 to 0.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/thuml/depyf/releases\"\u003edepyf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.19.0 release with recent improvements\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd device to imports by \u003ca href=\"https://github.com/ProExpertProg\"\u003e\u003ccode\u003e@​ProExpertProg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/82\"\u003ethuml/depyf#82\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing default argument values in \u003ccode\u003epatched_load_by_key_path\u003c/code\u003e by \u003ca href=\"https://github.com/nopperl\"\u003e\u003ccode\u003e@​nopperl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/81\"\u003ethuml/depyf#81\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate test files by \u003ca href=\"https://github.com/youkaichao\"\u003e\u003ccode\u003e@​youkaichao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/83\"\u003ethuml/depyf#83\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy instruction by \u003ca href=\"https://github.com/youkaichao\"\u003e\u003ccode\u003e@​youkaichao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/84\"\u003ethuml/depyf#84\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/ProExpertProg\"\u003e\u003ccode\u003e@​ProExpertProg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/82\"\u003ethuml/depyf#82\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nopperl\"\u003e\u003ccode\u003e@​nopperl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thuml/depyf/pull/81\"\u003ethuml/depyf#81\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/thuml/depyf/compare/v0.18.0...v0.19.0\"\u003ehttps://github.com/thuml/depyf/compare/v0.18.0...v0.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/thuml/depyf/commit/b67e16787e8c66324e114b4f2c6024438385b242\"\u003e\u003ccode\u003eb67e167\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/91ea66d5feca12392ba9c45a08094d948514343d\"\u003e\u003ccode\u003e91ea66d\u003c/code\u003e\u003c/a\u003e update test files (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/88\"\u003e#88\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/4fd2d58b0f6361f4c39aaf26e98b94049b7e6dd6\"\u003e\u003ccode\u003e4fd2d58\u003c/code\u003e\u003c/a\u003e bugfix for list extend with argval != 1 and add DEPYF_REMOVE_TEMP env var (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/87\"\u003e#87\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/2612c16584d7360a511044a313eac02e15f46831\"\u003e\u003ccode\u003e2612c16\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/e379286a302abde2808d249ba186bbe7a8235cc0\"\u003e\u003ccode\u003ee379286\u003c/code\u003e\u003c/a\u003e fix copy instruction (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/84\"\u003e#84\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/5cde94f8fe9446c56ccb19df71dc9f887d4f948a\"\u003e\u003ccode\u003e5cde94f\u003c/code\u003e\u003c/a\u003e update test files (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/83\"\u003e#83\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/461af54b38e07df88c33f5da81970bfc82eaa325\"\u003e\u003ccode\u003e461af54\u003c/code\u003e\u003c/a\u003e Add missing default argument values in \u003ccode\u003epatched_load_by_key_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/81\"\u003e#81\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thuml/depyf/commit/3c95e7ac95e133bce7ef8bf6f609dda2e8f331bf\"\u003e\u003ccode\u003e3c95e7a\u003c/code\u003e\u003c/a\u003e Add device to imports (\u003ca href=\"https://redirect.github.com/thuml/depyf/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/thuml/depyf/compare/v0.18.0...v0.20.0\"\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.0.1 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\u003ch2\u003epre-commit v4.2.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFor \u003ccode\u003elanguage: python\u003c/code\u003e first attempt a versioned python executable for the default language version before consulting a potentially unversioned \u003ccode\u003esys.executable\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3430\"\u003e#3430\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle error during conflict detection when a file is named \u0026quot;HEAD\u0026quot;\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3425\"\u003e#3425\u003c/a\u003e PR by \u003ca href=\"https://github.com/tusharsadhwani\"\u003e\u003ccode\u003e@​tusharsadhwani\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.1.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: julia\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3348\"\u003e#3348\u003c/a\u003e PR by \u003ca href=\"https://github.com/fredrikekre\"\u003e\u003ccode\u003e@​fredrikekre\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/2689\"\u003e#2689\u003c/a\u003e issue \u003ca href=\"https://github.com/jmuchovej\"\u003e\u003ccode\u003e@​jmuchovej\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable automatic toolchain switching for \u003ccode\u003elanguage: golang\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3304\"\u003e#3304\u003c/a\u003e PR by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3300\"\u003e#3300\u003c/a\u003e issue by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3149\"\u003e#3149\u003c/a\u003e issue by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: r\u003c/code\u003e installation when initiated by RStudio.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3389\"\u003e#3389\u003c/a\u003e PR by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3385\"\u003e#3385\u003c/a\u003e issue by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\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\u003ch1\u003e4.2.0 - 2025-03-18\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFor \u003ccode\u003elanguage: python\u003c/code\u003e first attempt a versioned python executable for\nthe default language version before consulting a potentially unversioned\n\u003ccode\u003esys.executable\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3430\"\u003e#3430\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle error during conflict detection when a file is named \u0026quot;HEAD\u0026quot;\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3425\"\u003e#3425\u003c/a\u003e PR by \u003ca href=\"https://github.com/tusharsadhwani\"\u003e\u003ccode\u003e@​tusharsadhwani\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.1.0 - 2025-01-20\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: julia\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3348\"\u003e#3348\u003c/a\u003e PR by \u003ca href=\"https://github.com/fredrikekre\"\u003e\u003ccode\u003e@​fredrikekre\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/2689\"\u003e#2689\u003c/a\u003e issue \u003ca href=\"https://github.com/jmuchovej\"\u003e\u003ccode\u003e@​jmuchovej\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable automatic toolchain switching for \u003ccode\u003elanguage: golang\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3304\"\u003e#3304\u003c/a\u003e PR by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3300\"\u003e#3300\u003c/a\u003e issue by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3149\"\u003e#3149\u003c/a\u003e issue by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: r\u003c/code\u003e installation when initiated by RStudio.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3389\"\u003e#3389\u003c/a\u003e PR by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3385\"\u003e#3385\u003c/a\u003e issue by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\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.0.1...v4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-book-theme` from 1.0.1 to 1.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/releases\"\u003esphinx-book-theme's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.4 - 2025-02-20\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.1.3...d3552e2524f4f8b602e9c161a5e765672d1367d1\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eENH: make the generated documentation more reproducible \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/883\"\u003e#883\u003c/a\u003e (\u003ca href=\"https://github.com/mitya57\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: make the generated gettext files reproducible \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/882\"\u003e#882\u003c/a\u003e (\u003ca href=\"https://github.com/mitya57\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: bump version for release :rocket: \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/843\"\u003e#843\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: edited russian translate \u0026quot;By\u0026quot; \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/806\"\u003e#806\u003c/a\u003e (\u003ca href=\"https://github.com/askras\"\u003e\u003ccode\u003e@​askras\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: use raw strings for math equations \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/881\"\u003e#881\u003c/a\u003e (\u003ca href=\"https://github.com/mitya57\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFIX: exclude command prompts when using copy button \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/867\"\u003e#867\u003c/a\u003e (\u003ca href=\"https://github.com/stevepiercy\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMAINT: pin PST theme version for now \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/898\"\u003e#898\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: adding explicit sphinx config into RTD config \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/897\"\u003e#897\u003c/a\u003e (\u003ca href=\"https://github.com/bsipocz\"\u003e\u003ccode\u003e@​bsipocz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: update dependabot config \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/875\"\u003e#875\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: pin pydata sphinx theme and update regression tests \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/862\"\u003e#862\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: upgrade sass \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/861\"\u003e#861\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMAINT: really drop python\u0026lt;=3.8 support \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/844\"\u003e#844\u003c/a\u003e (\u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDOCS: fix links in documentation \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/884\"\u003e#884\u003c/a\u003e (\u003ca href=\"https://github.com/choldgraf\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOCS: automatically update copyright year \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/866\"\u003e#866\u003c/a\u003e (\u003ca href=\"https://github.com/stevepiercy\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOCS: correct the option \u003ccode\u003ehtml_source_suffix\u003c/code\u003e to \u003ccode\u003ehtml_sourcelink_suffix\u003c/code\u003e \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/859\"\u003e#859\u003c/a\u003e (\u003ca href=\"https://github.com/Snoopy1866\"\u003e\u003ccode\u003e@​Snoopy1866\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther merged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild(deps-dev): Bump express from 4.18.2 to 4.21.2 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/886\"\u003e#886\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/885\"\u003e#885\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/880\"\u003e#880\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps-dev): Bump dedent from 0.7.0 to 1.5.3 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/878\"\u003e#878\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps-dev): Bump sass from 1.80.4 to 1.81.0 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/877\"\u003e#877\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump the actions group with 3 updates \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/876\"\u003e#876\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps-dev): Bump webpack from 5.92.0 to 5.96.1 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/871\"\u003e#871\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/860\"\u003e#860\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.10.0 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/857\"\u003e#857\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/808\"\u003e#808\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/graphs/contributors?from=2024-06-12\u0026amp;to=2025-02-20\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aagoose77+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aaskras+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​askras\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Absipocz+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​bsipocz\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Acholdgraf+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Adependabot+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Adylanh724+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dylanh724\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Akloczek+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Amitya57+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​mitya57\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Anilsleh+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​nilsleh\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Apre-commit-ci+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3ASnoopy1866+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Snoopy1866\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Astevepiercy+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Awelcome+updated%3A2024-06-12..2025-02-20\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​welcome\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/blob/master/CHANGELOG.md\"\u003esphinx-book-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev1.1.2 -- 2024-02-13\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.1.1...3da24da74f6042599fe6c9e2d612f5cbdef42280\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eENH: bump version \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/818\"\u003e#818\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: correct event-handler signature \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/817\"\u003e#817\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/graphs/contributors?from=2024-02-13\u0026amp;to=2024-02-13\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aagoose77+updated%3A2024-02-13..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1 -- 2024-02-13\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.1.0...9335ab99b0bc77b826cb2c5afcef3432f14e8780\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eENH: bump version for 1.1.1 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/815\"\u003e#815\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: use \u003ccode\u003econfig-inited\u003c/code\u003e event to register config \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/814\"\u003e#814\u003c/a\u003e (\u003ca href=\"https://github.com/agoose77\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther merged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild(deps): Bump actions/setup-python from 4 to 5 \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/803\"\u003e#803\u003c/a\u003e (\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/pull/801\"\u003e#801\u003c/a\u003e (\u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/graphs/contributors?from=2023-12-19\u0026amp;to=2024-02-13\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aagoose77+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​agoose77\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Acholdgraf+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Adependabot+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Aghisvail+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ghisvail\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Apre-commit-ci+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aexecutablebooks%2Fsphinx-book-theme+involves%3Awelcome+updated%3A2023-12-19..2024-02-13\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​welcome\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0 -- 2023-12-19\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.0.1...v1.1.0\"\u003efull changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\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/executablebooks/sphinx-book-theme/commit/23f6936ae956428463f2ec97eebc2fe68bdd344b\"\u003e\u003ccode\u003e23f6936\u003c/code\u003e\u003c/a\u003e chore: bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/d3552e2524f4f8b602e9c161a5e765672d1367d1\"\u003e\u003ccode\u003ed3552e2\u003c/code\u003e\u003c/a\u003e MAINT: pin PST theme version for now (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/898\"\u003e#898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/ee815b18eeb50b5becb356cce93251030d3565bd\"\u003e\u003ccode\u003eee815b1\u003c/code\u003e\u003c/a\u003e CI: adding explicit sphinx config into RTD config (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/897\"\u003e#897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/8822eeff673f14e627925a51070d5eeaf3360dbe\"\u003e\u003ccode\u003e8822eef\u003c/code\u003e\u003c/a\u003e really drop python\u0026lt;=3.8 support (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/40f7c41fc7a32cb428e1195c86fa156d8a23ce36\"\u003e\u003ccode\u003e40f7c41\u003c/code\u003e\u003c/a\u003e Build(deps): Bump the actions group with 3 updates (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/876\"\u003e#876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/1cd3ca6f39dd51702d581b2db1b705865104e887\"\u003e\u003ccode\u003e1cd3ca6\u003c/code\u003e\u003c/a\u003e Build(deps-dev): Bump express from 4.18.2 to 4.21.2 (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/886\"\u003e#886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/c9a7d49bc5d996b1f4761e748bf4f52e26b0f257\"\u003e\u003ccode\u003ec9a7d49\u003c/code\u003e\u003c/a\u003e Build(deps-dev): Bump sass from 1.80.4 to 1.81.0 (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/877\"\u003e#877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/7d118ba19d1ff842775c7acce90383fefb9da081\"\u003e\u003ccode\u003e7d118ba\u003c/code\u003e\u003c/a\u003e Build(deps-dev): Bump dedent from 0.7.0 to 1.5.3 (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/2732526202b261b3de44c5a4dab425e37f9bd18f\"\u003e\u003ccode\u003e2732526\u003c/code\u003e\u003c/a\u003e Fix links in documentation (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/884\"\u003e#884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/commit/e2eea6fa696efa47a37760e2e7c53f778a143691\"\u003e\u003ccode\u003ee2eea6f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/executablebooks/sphinx-book-theme/issues/885\"\u003e#885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/executablebooks/sphinx-book-theme/compare/v1.0.1...v1.1.4\"\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/NazmulTakbir/FlexiCache-vLLM-extension/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/NazmulTakbir%2FFlexiCache-vLLM-extension/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"}},{"old_version":"1.2.2","new_version":"1.3.1","update_type":"minor","path":null,"pr_created_at":"2026-01-05T06:31:59.000Z","version_change":"1.2.2 → 1.3.1","issue":{"uuid":"3780341937","node_id":"PR_kwDOQDraYs67eXHd","number":11,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 35 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-01-19T07:20:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-05T06:31:59.000Z","updated_at":"2026-01-19T07:20:58.000Z","time_to_close":1212537,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":35,"packages":[{"name":"django","old_version":"4.2.24","new_version":"6.0","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"django-post-office","old_version":"3.10.1","new_version":"3.11.0","repository_url":"https://github.com/ui/django-post_office"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-treebeard","old_version":"4.7.1","new_version":"4.8.0","repository_url":"https://github.com/django-treebeard/django-treebeard"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"importlib-metadata","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"boto3","old_version":"1.40.27","new_version":"1.42.21","repository_url":"https://github.com/boto/boto3"},{"name":"django-ses","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/django-ses/django-ses"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.33.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.1","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"40.1.0","repository_url":"https://github.com/joke2k/faker"},{"name":"vcrpy","old_version":"7.0.0","new_version":"8.1.1","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.1.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.148.13","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 35 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `6.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.2` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [django-post-office](https://github.com/ui/django-post_office) | `3.10.1` | `3.11.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-treebeard](https://github.com/django-treebeard/django-treebeard) | `4.7.1` | `4.8.0` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.0` | `8.7.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.42.21` |\n| [django-ses](https://github.com/django-ses/django-ses) | `4.4.0` | `4.5.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.1` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.33.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.1` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `40.1.0` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `7.0.0` | `8.1.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.1.0` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.148.13` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 6.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/36b5f39d9372147f0e758f590e35ee2b2bc317dd\"\u003e\u003ccode\u003e36b5f39\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f46d1f43345da90037aab1c238d81058b61515b\"\u003e\u003ccode\u003e4f46d1f\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated man page for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a9f5ca5c58df7b662ad23ba9a39619c41a7e39ff\"\u003e\u003ccode\u003ea9f5ca5\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35859\"\u003e#35859\u003c/a\u003e -- Clarified Tasks ref and topics docs regarding availabl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/45f9e0e969257c0938fec4b51b9b0264aa49bd25\"\u003e\u003ccode\u003e45f9e0e\u003c/code\u003e\u003c/a\u003e [6.0.x] Finalized release notes for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac44a55c80a918c30a4f5f03becd4cf01500bbb6\"\u003e\u003ccode\u003eac44a55\u003c/code\u003e\u003c/a\u003e [6.0.x] Made cosmetic edits to docs/releases/6.0.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/00575b79312c719a6b37035067095e2d679bb5d7\"\u003e\u003ccode\u003e00575b7\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8414487569431f14e3da0c90185f03267a118160\"\u003e\u003ccode\u003e8414487\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35444\"\u003e#35444\u003c/a\u003e -- Fixed typo in PostgreSQL StringAgg deprecation warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1f8f36ee794aba06246f3a3e48a3fefadff019ea\"\u003e\u003ccode\u003e1f8f36e\u003c/code\u003e\u003c/a\u003e [6.0.x] Added CVE-2025-13372 and CVE-2025-64460 to security archive.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/224fc79c02366158be05beaaa18ad557b0c9096a\"\u003e\u003ccode\u003e224fc79\u003c/code\u003e\u003c/a\u003e [6.0.x] Added stub release notes for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1dbd07a608e495a0c229edaaf84d58d8976313b5\"\u003e\u003ccode\u003e1dbd07a\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2025-64460 -- Corrected quadratic inner text accumulation i...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by \u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Revoked tasks now immediately update backend status to REVOKED by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9869\"\u003ecelery/celery#9869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10049\"\u003ecelery/celery#10049\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/celery/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option by \u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10020\"\u003ecelery/celery#10020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup by \u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereliable prefork detection by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10023\"\u003ecelery/celery#10023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter coverage by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10029\"\u003ecelery/celery#10029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example by \u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10032\"\u003ecelery/celery#10032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10033\"\u003ecelery/celery#10033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10037\"\u003ecelery/celery#10037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/celery/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2026-01-04\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string ([#10045](https://github.com/celery/celery/issues/10045))\n- Bugfix: Revoked tasks now immediately update backend status to REVOKED ([#9869](https://github.com/celery/celery/issues/9869))\n- Prepare for release: v5.6.2 ([#10049](https://github.com/celery/celery/issues/10049))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-12-29\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10013\"\u003e#10013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9986\"\u003e#9986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10020\"\u003e#10020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereliable prefork detection (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10023\"\u003e#10023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebetter coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10030\"\u003e#10030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10032\"\u003e#10032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6a43c846f183ef0cbade24f4b9a8f7a6ea113b44\"\u003e\u003ccode\u003e6a43c84\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10049\"\u003e#10049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/333a82f746734151c5cbe848916085455b0a3748\"\u003e\u003ccode\u003e333a82f\u003c/code\u003e\u003c/a\u003e Bugfix: Revoked tasks now immediately update backend status to REVOKED (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9869\"\u003e#9869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/9d6ab110d947270c4edf0b42454266d2954e653d\"\u003e\u003ccode\u003e9d6ab11\u003c/code\u003e\u003c/a\u003e Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeEr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21dbc73f81d2fae058de49e665afaa1cd92da5c0\"\u003e\u003ccode\u003e21dbc73\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/ba20bed7723c684d12ddd62d6a7c0c0d901b3351\"\u003e\u003ccode\u003eba20bed\u003c/code\u003e\u003c/a\u003e Only use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21675299bc2d10c648448ec5221136e07c1eec1a\"\u003e\u003ccode\u003e2167529\u003c/code\u003e\u003c/a\u003e Stop importing pytest_subtests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0527296acb1f1790788301d4395ba6d5ce2a9704\"\u003e\u003ccode\u003e0527296\u003c/code\u003e\u003c/a\u003e Bump google-cloud-firestore from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5f8659bdba4561796d66e938a1e2c71d4489562f\"\u003e\u003ccode\u003e5f8659b\u003c/code\u003e\u003c/a\u003e Clarify 'result_extended' setting usage in tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f19db7008682c782d85e69b5ce736970491752ea\"\u003e\u003ccode\u003ef19db70\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10028\"\u003e#10028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6da72bde60553a1c350eef1e17d834d004ed099d\"\u003e\u003ccode\u003e6da72bd\u003c/code\u003e\u003c/a\u003e better coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on 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/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.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 `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 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/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-post-office` from 3.10.1 to 3.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ui/django-post_office/releases\"\u003edjango-post-office's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Python 3.14 and Django 6.0 compatibility. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ui/django-post_office/blob/master/CHANGELOG.md\"\u003edjango-post-office's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003ebleach\u003c/code\u003e with \u003ccode\u003enh3\u003c/code\u003e for HTML sanitization. \u003ccode\u003ebleach\u003c/code\u003e has been deprecated since 2023. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSESWebhookHandler\u003c/code\u003e and \u003ccode\u003eSparkPostWebhookHandler\u003c/code\u003e for handling webhook events (beta feature). Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eOptimized the way templates are fetched during email delivery. Thanks \u003ca href=\"https://github.com/selwin\"\u003e\u003ccode\u003e@​selwin\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/825af68a79bce78acb18c945d1f3acd5935a975b\"\u003e\u003ccode\u003e825af68\u003c/code\u003e\u003c/a\u003e Bump version to 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/99be3b50a904d84f35fecb14f6c64575611a2e8a\"\u003e\u003ccode\u003e99be3b5\u003c/code\u003e\u003c/a\u003e Delete publish.yml (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/a360b7946a0b8a777e0764ab7423749f7686716b\"\u003e\u003ccode\u003ea360b79\u003c/code\u003e\u003c/a\u003e Improve tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/fe7c583512845d31685245b783a502bfc221c0c6\"\u003e\u003ccode\u003efe7c583\u003c/code\u003e\u003c/a\u003e Python314 fix (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0556f5eaaffbbbb29bd3db2ad0c2ef2086595971\"\u003e\u003ccode\u003e0556f5e\u003c/code\u003e\u003c/a\u003e Updated test.yml so tests don't get triggered twice (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/00ddbc165e597af2967fa3fcd3f34a66d0659ae3\"\u003e\u003ccode\u003e00ddbc1\u003c/code\u003e\u003c/a\u003e Webhooks (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/936d1ac816ffd3cf734bd77f0bb7ec17082793f3\"\u003e\u003ccode\u003e936d1ac\u003c/code\u003e\u003c/a\u003e Updated README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/91fbc6c28be60288961521520581d20745b3320c\"\u003e\u003ccode\u003e91fbc6c\u003c/code\u003e\u003c/a\u003e Webhook handlers (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/0f68aaf444779682ea3d8806a5f46dea1a753e08\"\u003e\u003ccode\u003e0f68aaf\u003c/code\u003e\u003c/a\u003e Merge branch 'webhooks'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ui/django-post_office/commit/5b7fdf9989517b1e740cc725ae635833dc376a12\"\u003e\u003ccode\u003e5b7fdf9\u003c/code\u003e\u003c/a\u003e Move tests (\u003ca href=\"https://redirect.github.com/ui/django-post_office/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ui/django-post_office/compare/v3.10.1...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove initial Release Drafter config (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c0b74ed58f933bffd160c60a58620f672710ff7c\"\u003ec0b74ed\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/martinblech/xmltodict/commit/d079849136b031c471ec96a168ad7859ed5994ff\"\u003e\u003ccode\u003ed079849\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e\u003ccode\u003e25b61a4\u003c/code\u003e\u003c/a\u003e fix: allow DOCTYPE with disable_entities=True (default)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a2a9ab7e0692a62f64d97ff12553d0d53368c854\"\u003e\u003ccode\u003ea2a9ab7\u003c/code\u003e\u003c/a\u003e ci(publish): allow uploading release assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/656e6af9543e640fda7e96d6bdd6e693756687be\"\u003e\u003ccode\u003e656e6af\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003e\u003ccode\u003ec986d2d\u003c/code\u003e\u003c/a\u003e fix: fail closed when entities disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e\u003ccode\u003e3d4d2d3\u003c/code\u003e\u003c/a\u003e fix: validate XML comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b4a5f2a3f04aff68384486e957632c8438396fd6\"\u003e\u003ccode\u003eb4a5f2a\u003c/code\u003e\u003c/a\u003e refactor: remove jython-specific parsing branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e\u003ccode\u003e6b464fc\u003c/code\u003e\u003c/a\u003e docs: clarify process_comments docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/34daa304d443e49113d195294d99c6f58ce4714c\"\u003e\u003ccode\u003e34daa30\u003c/code\u003e\u003c/a\u003e refactor: remove unused helper functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e\u003ccode\u003e2025b5c\u003c/code\u003e\u003c/a\u003e docs: clarify behavior for empty lists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/11","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/11","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/11/packages"}},{"old_version":"1.2.2","new_version":"1.3.1","update_type":"minor","path":null,"pr_created_at":"2025-12-22T06:28:36.000Z","version_change":"1.2.2 → 1.3.1","issue":{"uuid":"3752501390","node_id":"PR_kwDOQDraYs66Ev1g","number":10,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 34 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-01-05T06:30:08.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T06:28:36.000Z","updated_at":"2026-01-05T06:30:10.000Z","time_to_close":1209692,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":34,"packages":[{"name":"django","old_version":"4.2.24","new_version":"6.0","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-treebeard","old_version":"4.7.1","new_version":"4.8.0","repository_url":"https://github.com/django-treebeard/django-treebeard"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"importlib-metadata","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"boto3","old_version":"1.40.27","new_version":"1.42.14","repository_url":"https://github.com/boto/boto3"},{"name":"django-ses","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/django-ses/django-ses"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"39.0.0","repository_url":"https://github.com/joke2k/faker"},{"name":"vcrpy","old_version":"7.0.0","new_version":"8.1.0","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.0.4","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.148.7","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `6.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-treebeard](https://github.com/django-treebeard/django-treebeard) | `4.7.1` | `4.8.0` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.0` | `8.7.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.42.14` |\n| [django-ses](https://github.com/django-ses/django-ses) | `4.4.0` | `4.5.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.0` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `39.0.0` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `7.0.0` | `8.1.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.0.4` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.148.7` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 6.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/36b5f39d9372147f0e758f590e35ee2b2bc317dd\"\u003e\u003ccode\u003e36b5f39\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f46d1f43345da90037aab1c238d81058b61515b\"\u003e\u003ccode\u003e4f46d1f\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated man page for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a9f5ca5c58df7b662ad23ba9a39619c41a7e39ff\"\u003e\u003ccode\u003ea9f5ca5\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35859\"\u003e#35859\u003c/a\u003e -- Clarified Tasks ref and topics docs regarding availabl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/45f9e0e969257c0938fec4b51b9b0264aa49bd25\"\u003e\u003ccode\u003e45f9e0e\u003c/code\u003e\u003c/a\u003e [6.0.x] Finalized release notes for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac44a55c80a918c30a4f5f03becd4cf01500bbb6\"\u003e\u003ccode\u003eac44a55\u003c/code\u003e\u003c/a\u003e [6.0.x] Made cosmetic edits to docs/releases/6.0.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/00575b79312c719a6b37035067095e2d679bb5d7\"\u003e\u003ccode\u003e00575b7\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8414487569431f14e3da0c90185f03267a118160\"\u003e\u003ccode\u003e8414487\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35444\"\u003e#35444\u003c/a\u003e -- Fixed typo in PostgreSQL StringAgg deprecation warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1f8f36ee794aba06246f3a3e48a3fefadff019ea\"\u003e\u003ccode\u003e1f8f36e\u003c/code\u003e\u003c/a\u003e [6.0.x] Added CVE-2025-13372 and CVE-2025-64460 to security archive.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/224fc79c02366158be05beaaa18ad557b0c9096a\"\u003e\u003ccode\u003e224fc79\u003c/code\u003e\u003c/a\u003e [6.0.x] Added stub release notes for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1dbd07a608e495a0c229edaaf84d58d8976313b5\"\u003e\u003ccode\u003e1dbd07a\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2025-64460 -- Corrected quadratic inner text accumulation i...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on 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/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.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 `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 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/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove initial Release Drafter config (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c0b74ed58f933bffd160c60a58620f672710ff7c\"\u003ec0b74ed\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/martinblech/xmltodict/commit/d079849136b031c471ec96a168ad7859ed5994ff\"\u003e\u003ccode\u003ed079849\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e\u003ccode\u003e25b61a4\u003c/code\u003e\u003c/a\u003e fix: allow DOCTYPE with disable_entities=True (default)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a2a9ab7e0692a62f64d97ff12553d0d53368c854\"\u003e\u003ccode\u003ea2a9ab7\u003c/code\u003e\u003c/a\u003e ci(publish): allow uploading release assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/656e6af9543e640fda7e96d6bdd6e693756687be\"\u003e\u003ccode\u003e656e6af\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003e\u003ccode\u003ec986d2d\u003c/code\u003e\u003c/a\u003e fix: fail closed when entities disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e\u003ccode\u003e3d4d2d3\u003c/code\u003e\u003c/a\u003e fix: validate XML comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b4a5f2a3f04aff68384486e957632c8438396fd6\"\u003e\u003ccode\u003eb4a5f2a\u003c/code\u003e\u003c/a\u003e refactor: remove jython-specific parsing branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e\u003ccode\u003e6b464fc\u003c/code\u003e\u003c/a\u003e docs: clarify process_comments docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/34daa304d443e49113d195294d99c6f58ce4714c\"\u003e\u003ccode\u003e34daa30\u003c/code\u003e\u003c/a\u003e refactor: remove unused helper functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e\u003ccode\u003e2025b5c\u003c/code\u003e\u003c/a\u003e docs: clarify behavior for empty lists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezs...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"}},{"old_version":"1.2.2","new_version":"1.3.1","update_type":"minor","path":null,"pr_created_at":"2025-12-22T05:25:15.000Z","version_change":"1.2.2 → 1.3.1","issue":{"uuid":"3752379755","node_id":"PR_kwDOAYRY2s66EV9Z","number":5157,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 34 updates","user":"dependabot[bot]","labels":["Maintenance"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-05T05:21:28.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T05:25:15.000Z","updated_at":"2026-01-05T05:21:29.000Z","time_to_close":1209373,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":34,"packages":[{"name":"django","old_version":"4.2.26","new_version":"6.0","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.8","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"simple-salesforce","old_version":"1.12.8","new_version":"1.12.9","repository_url":"https://github.com/simple-salesforce/simple-salesforce"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-treebeard","old_version":"4.7.1","new_version":"4.8.0","repository_url":"https://github.com/django-treebeard/django-treebeard"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"importlib-metadata","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"boto3","old_version":"1.40.30","new_version":"1.42.14","repository_url":"https://github.com/boto/boto3"},{"name":"django-ses","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/django-ses/django-ses"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"39.0.0","repository_url":"https://github.com/joke2k/faker"},{"name":"vcrpy","old_version":"7.0.0","new_version":"8.1.0","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.0.4","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.16","new_version":"6.148.7","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.26` | `6.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.8` | `3.2.9` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [simple-salesforce](https://github.com/simple-salesforce/simple-salesforce) | `1.12.8` | `1.12.9` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-treebeard](https://github.com/django-treebeard/django-treebeard) | `4.7.1` | `4.8.0` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.0` | `8.7.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.30` | `1.42.14` |\n| [django-ses](https://github.com/django-ses/django-ses) | `4.4.0` | `4.5.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.0` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `39.0.0` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `7.0.0` | `8.1.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.0.4` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.16` | `6.148.7` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.26 to 6.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/36b5f39d9372147f0e758f590e35ee2b2bc317dd\"\u003e\u003ccode\u003e36b5f39\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f46d1f43345da90037aab1c238d81058b61515b\"\u003e\u003ccode\u003e4f46d1f\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated man page for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a9f5ca5c58df7b662ad23ba9a39619c41a7e39ff\"\u003e\u003ccode\u003ea9f5ca5\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35859\"\u003e#35859\u003c/a\u003e -- Clarified Tasks ref and topics docs regarding availabl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/45f9e0e969257c0938fec4b51b9b0264aa49bd25\"\u003e\u003ccode\u003e45f9e0e\u003c/code\u003e\u003c/a\u003e [6.0.x] Finalized release notes for Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac44a55c80a918c30a4f5f03becd4cf01500bbb6\"\u003e\u003ccode\u003eac44a55\u003c/code\u003e\u003c/a\u003e [6.0.x] Made cosmetic edits to docs/releases/6.0.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/00575b79312c719a6b37035067095e2d679bb5d7\"\u003e\u003ccode\u003e00575b7\u003c/code\u003e\u003c/a\u003e [6.0.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8414487569431f14e3da0c90185f03267a118160\"\u003e\u003ccode\u003e8414487\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35444\"\u003e#35444\u003c/a\u003e -- Fixed typo in PostgreSQL StringAgg deprecation warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1f8f36ee794aba06246f3a3e48a3fefadff019ea\"\u003e\u003ccode\u003e1f8f36e\u003c/code\u003e\u003c/a\u003e [6.0.x] Added CVE-2025-13372 and CVE-2025-64460 to security archive.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/224fc79c02366158be05beaaa18ad557b0c9096a\"\u003e\u003ccode\u003e224fc79\u003c/code\u003e\u003c/a\u003e [6.0.x] Added stub release notes for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1dbd07a608e495a0c229edaaf84d58d8976313b5\"\u003e\u003ccode\u003e1dbd07a\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2025-64460 -- Corrected quadratic inner text accumulation i...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.26...6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on 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/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.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 `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 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/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.8 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\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/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.8...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simple-salesforce` from 1.12.8 to 1.12.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simple-salesforce/simple-salesforce/releases\"\u003esimple-salesforce's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.12.9\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: missing key 'name' in exception message by \u003ca href=\"https://github.com/hofrob\"\u003e\u003ccode\u003e@​hofrob\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/pull/795\"\u003esimple-salesforce/simple-salesforce#795\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/hofrob\"\u003e\u003ccode\u003e@​hofrob\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/pull/795\"\u003esimple-salesforce/simple-salesforce#795\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simple-salesforce/simple-salesforce/compare/v1.12.8...v1.12.9\"\u003ehttps://github.com/simple-salesforce/simple-salesforce/compare/v1.12.8...v1.12.9\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/simple-salesforce/simple-salesforce/blob/master/CHANGES\"\u003esimple-salesforce's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev1.12.9\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/issues/795\"\u003e#795\u003c/a\u003e Fix key 'name' in exception message\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simple-salesforce/simple-salesforce/commit/fc7410a1603a6a2f4df2dc407b9f3f5313cb696e\"\u003e\u003ccode\u003efc7410a\u003c/code\u003e\u003c/a\u003e chore: Bump release version (\u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simple-salesforce/simple-salesforce/commit/e9c256377abe6b7b6455e69ba9bd8b7d76d566de\"\u003e\u003ccode\u003ee9c2563\u003c/code\u003e\u003c/a\u003e fix: missing key 'name' in exception message (\u003ca href=\"https://redirect.github.com/simple-salesforce/simple-salesforce/issues/795\"\u003e#795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/simple-salesforce/simple-salesforce/compare/v1.12.8...v1.12.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shapely` from 2.0.7 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\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/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-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/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densi...\n\n_Description has been truncated_","html_url":"https://github.com/SEED-platform/seed/pull/5157","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SEED-platform%2Fseed/issues/5157","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5157/packages"}},{"old_version":"1.2.2","new_version":"1.3.1","update_type":"minor","path":null,"pr_created_at":"2025-12-01T16:15:49.000Z","version_change":"1.2.2 → 1.3.1","issue":{"uuid":"3681752089","node_id":"PR_kwDONPMWbc62YwfE","number":69,"state":"closed","title":"Bump the all 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-12-13T08:25:15.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-01T16:15:49.000Z","updated_at":"2025-12-13T08:25:16.000Z","time_to_close":1008566,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all","update_count":11,"packages":[{"name":"hypothesis","old_version":"6.140.2","new_version":"6.148.5","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"poethepoet","old_version":"0.37.0","new_version":"0.38.0","repository_url":"https://github.com/nat-n/poethepoet"},{"name":"pyright","old_version":"1.1.405","new_version":"1.1.407","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"ruff","old_version":"0.13.2","new_version":"0.14.7","repository_url":"https://github.com/astral-sh/ruff"},{"name":"vermin","old_version":"1.6.0","new_version":"1.8.0","repository_url":"https://github.com/netromdk/vermin"},{"name":"beautifulsoup4","old_version":"4.13.5","new_version":"4.14.3"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"lxml","old_version":"6.0.1","new_version":"6.0.2","repository_url":"https://github.com/lxml/lxml"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.10.6","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"more-itertools","old_version":"10.7.0","new_version":"10.8.0","repository_url":"https://github.com/more-itertools/more-itertools"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.140.2` | `6.148.5` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.1` |\n| [poethepoet](https://github.com/nat-n/poethepoet) | `0.37.0` | `0.38.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.405` | `1.1.407` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.2` | `0.14.7` |\n| [vermin](https://github.com/netromdk/vermin) | `1.6.0` | `1.8.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.5` | `4.14.3` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [lxml](https://github.com/lxml/lxml) | `6.0.1` | `6.0.2` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.10.6` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.7.0` | `10.8.0` |\n\n\nUpdates `hypothesis` from 6.140.2 to 6.148.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/releases\"\u003ehypothesis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eHypothesis for Python - version 6.148.5\u003c/h2\u003e\n\u003cp\u003eThis patch improves the error message for \u0026quot;FlakyStrategyDefinition\u0026quot;\nwhen the precondition for a rule is flaky (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4206\"\u003e#4206\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-148-5\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.148.4\u003c/h2\u003e\n\u003cp\u003eThis patch improves the type annotations for \u0026quot;basic_indices()\u0026quot;. The\nreturn type now accurately reflects the \u0026quot;allow_ellipsis\u0026quot; and\n\u0026quot;allow_newaxis\u0026quot; parameters, excluding \u0026quot;EllipsisType\u0026quot; or \u0026quot;None\u0026quot; from\nthe union when those index types are disabled (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4607\"\u003e#4607\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eAdditionally, \u0026quot;assume()\u0026quot; now has overloaded type annotations:\n\u0026quot;assume(True)\u0026quot; returns \u0026quot;Literal[True]\u0026quot;, while \u0026quot;assume(False)\u0026quot; and\n\u0026quot;assume(None)\u0026quot; return \u0026quot;NoReturn\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-148-4\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.148.3\u003c/h2\u003e\n\u003cp\u003eClean up some internal code.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-148-3\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.148.2\u003c/h2\u003e\n\u003cp\u003eDocument \u0026quot;fuzz_one_input()\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-148-2\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.148.1\u003c/h2\u003e\n\u003cp\u003eThis patch updates our vendored list of top-level domains, which is\nused by the provisional \u0026quot;domains()\u0026quot; strategy.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-148-1\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.148.0\u003c/h2\u003e\n\u003cp\u003eCalling \u0026quot;register_profile()\u0026quot; from within a test decorated with\n\u0026quot;\u003ca href=\"https://github.com/settings\"\u003e\u003ccode\u003e@​settings\u003c/code\u003e\u003c/a\u003e\u0026quot; is now deprecated, to avoid confusion about which settings\nare used as the baseline for the new profile.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-148-0\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.147.0\u003c/h2\u003e\n\u003cp\u003eThis release drops support for nose, which ceased development 9 years\nago and does not support Python 3.10 or newer.\u003c/p\u003e\n\u003cp\u003eHypothesis still supports nose2. While we do not test \u0026quot;nose2\u0026quot; in our\nCI, we will fix any bugs that get reported.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-147-0\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/3605694a68576c4b4adb520a3581d97f30cfce92\"\u003e\u003ccode\u003e3605694\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.148.5 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/921f2462d795905d9f8583cc7396545806796ebd\"\u003e\u003ccode\u003e921f246\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4615\"\u003e#4615\u003c/a\u003e from Zac-HD/claude/improve-stateful-error-message-01...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/0e4d4c7fb2733240f1b4ff6b6759aadb53318993\"\u003e\u003ccode\u003e0e4d4c7\u003c/code\u003e\u003c/a\u003e Add _flaky_state handling and test for flaky rule strategy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/41f03290ab1956c129f7a53146410e1a467f6978\"\u003e\u003ccode\u003e41f0329\u003c/code\u003e\u003c/a\u003e Improve FlakyStrategyDefinition error message for stateful tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/d812e5c33ee543e0d68ab4076ac87c85e0e8c5b6\"\u003e\u003ccode\u003ed812e5c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4613\"\u003e#4613\u003c/a\u003e from Zac-HD/claude/fix-stack-depth-warning-019yVLCyc...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/a0bd28f6458f07acecf2774de71ed4f4a35d5618\"\u003e\u003ccode\u003ea0bd28f\u003c/code\u003e\u003c/a\u003e Enable stacklevel test for \u003ca href=\"https://github.com/st\"\u003e\u003ccode\u003e@​st\u003c/code\u003e\u003c/a\u003e.composite on all Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/075e2ac0be876b1bf4c091376ad5fe43965bf6b4\"\u003e\u003ccode\u003e075e2ac\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.148.4 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/e05b372765349fed7cc196f1295b83f13f5c3f09\"\u003e\u003ccode\u003ee05b372\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4611\"\u003e#4611\u003c/a\u003e from Zac-HD/claude/fix-hypothesis-4607-018dHECpz3mwL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/799c0c9808863d2aaf89cb590094a601045d66a4\"\u003e\u003ccode\u003e799c0c9\u003c/code\u003e\u003c/a\u003e Fix type test expectations for basic_indices overloads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/1308babcf986463cb30102fae32fd04fabf5ccf3\"\u003e\u003ccode\u003e1308bab\u003c/code\u003e\u003c/a\u003e Fix import order in numpy.py\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/compare/hypothesis-python-6.140.2...hypothesis-python-6.148.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.2 to 9.0.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\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\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/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.0\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.0 (2025-11-05)\u003c/h1\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/1367\"\u003e#1367\u003c/a\u003e: \u003cstrong\u003eSupport for subtests\u003c/strong\u003e has been added.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003esubtests \u0026lt;subtests\u0026gt;\u003c/code\u003e are an alternative to parametrization, useful in situations where the parametrization values are not all known at collection time.\u003c/p\u003e\n\u003cp\u003eExample:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003edef contains_docstring(p: Path) -\u0026gt; bool:\n    \u0026quot;\u0026quot;\u0026quot;Return True if the given Python file contains a top-level docstring.\u0026quot;\u0026quot;\u0026quot;\n    ...\n\u003cp\u003edef test_py_files_contain_docstring(subtests: pytest.Subtests) -\u0026gt; None:\u003cbr /\u003e\nfor path in Path.cwd().glob(\u0026quot;*.py\u0026quot;):\u003cbr /\u003e\nwith subtests.test(path=str(path)):\u003cbr /\u003e\nassert contains_docstring(path)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\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/pytest-dev/pytest/commit/d1b64aa60b9e1a0fcfaf03af7ebeb185f1024a87\"\u003e\u003ccode\u003ed1b64aa\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0a497c7b213ea950821319fd80dce219b0033f32\"\u003e\u003ccode\u003e0a497c7\u003c/code\u003e\u003c/a\u003e regendoc: remove CI environment variables (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13950\"\u003e#13950\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13951\"\u003e#13951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a9f7e6ed579b8844e302067b7f05122b82993355\"\u003e\u003ccode\u003ea9f7e6e\u003c/code\u003e\u003c/a\u003e 🧪 Run \u003ccode\u003egh release\u003c/code\u003e w/o Git in CI/CD (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13947\"\u003e#13947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2682a6607304f1f5bb5a2140340003cdf5121bc4\"\u003e\u003ccode\u003e2682a66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13944\"\u003e#13944\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/bef7d34f1...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a999997e36c53d189ecded3369bf35bfe2be96ad\"\u003e\u003ccode\u003ea999997\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13941\"\u003e#13941\u003c/a\u003e from nicoddemus/min-pre-commit-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/4bd63a0ead81d740aa767a4384d3b0b4c18f2ef2\"\u003e\u003ccode\u003e4bd63a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13935\"\u003e#13935\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/ce8b8a7b4...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/15f93b332c1c3ec9c200c0ad3d55af5a2158e0db\"\u003e\u003ccode\u003e15f93b3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e from webknjaz/maintenance/tox-pep517-env-setuptools...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0fa11ae3f79d06dc9e2f1f7c81ade4a1126d9ef3\"\u003e\u003ccode\u003e0fa11ae\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13927\"\u003e#13927\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/3d8075743...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/fa454700133c7b2cc960cba3b1cd09cc048c25a0\"\u003e\u003ccode\u003efa45470\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13926\"\u003e#13926\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d587e0cf8...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b4e3973505a2b7a2caa17ccc392d91a6ad73e122\"\u003e\u003ccode\u003eb4e3973\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13922\"\u003e#13922\u003c/a\u003e from bluetech/fix-argparse-userwarning\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `poethepoet` from 0.37.0 to 0.38.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nat-n/poethepoet/releases\"\u003epoethepoet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.38.0\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Add parallel task type by \u003ca href=\"https://github.com/nat-n\"\u003e\u003ccode\u003e@​nat-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/323\"\u003enat-n/poethepoet#323\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for python 3.9 by \u003ca href=\"https://github.com/nat-n\"\u003e\u003ccode\u003e@​nat-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/329\"\u003enat-n/poethepoet#329\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInternal changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor: executor options by \u003ca href=\"https://github.com/nat-n\"\u003e\u003ccode\u003e@​nat-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/328\"\u003enat-n/poethepoet#328\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/nat-n/poethepoet/compare/v0.37.0...v0.38.0\"\u003ehttps://github.com/nat-n/poethepoet/compare/v0.37.0...v0.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.38.0-beta\u003c/h2\u003e\n\u003ch2\u003ePre-release for parallel tasks\u003c/h2\u003e\n\u003cp\u003eAdds new \u003cem\u003eparallel\u003c/em\u003e task type that runs subtasks in parallel and multiplexes subprocess outputs with a line prefix\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMajor refactor of task orchestration to use asyncio\u003c/li\u003e\n\u003cli\u003eRewrite of signal handling logic to improve subprocess cleanup\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/nat-n/poethepoet/compare/v0.37.0...v0.38.0-beta\"\u003ehttps://github.com/nat-n/poethepoet/compare/v0.37.0...v0.38.0-beta\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/nat-n/poethepoet/commit/9e751f2cbc86d734f647520c4eb444dd042d3bf9\"\u003e\u003ccode\u003e9e751f2\u003c/code\u003e\u003c/a\u003e test: Try mitigate hanging flakey test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/fb01edbcb4de79312275b757b36ae338c8609516\"\u003e\u003ccode\u003efb01edb\u003c/code\u003e\u003c/a\u003e test: improve parallel task test stability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/ff04b331bf5dd433ae1486a70560fd67b1c2b458\"\u003e\u003ccode\u003eff04b33\u003c/code\u003e\u003c/a\u003e chore: drop support for python 3.9 (\u003ca href=\"https://redirect.github.com/nat-n/poethepoet/issues/329\"\u003e#329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/818c407c5a0710d75abce2e4510c2391689fff25\"\u003e\u003ccode\u003e818c407\u003c/code\u003e\u003c/a\u003e feat: Add parallel task type (\u003ca href=\"https://redirect.github.com/nat-n/poethepoet/issues/323\"\u003e#323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/3257781c5546348493b5c742196e32431cad74b2\"\u003e\u003ccode\u003e3257781\u003c/code\u003e\u003c/a\u003e refactor: executor options (\u003ca href=\"https://redirect.github.com/nat-n/poethepoet/issues/328\"\u003e#328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nat-n/poethepoet/compare/v0.37.0...v0.38.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` from 1.1.405 to 1.1.407\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/53e8efb4638daca6c541d18ad35dafb0e5d9f34d\"\u003e\u003ccode\u003e53e8efb\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.407 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/1d515b71299f9dc4c066ce37e673d93bda4bc2df\"\u003e\u003ccode\u003e1d515b7\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.406 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.405...v1.1.407\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.13.2 to 0.14.7\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.14.7\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-11-28.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Handle string literal bindings in suspicious-url-open-usage (\u003ccode\u003eS310\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21469\"\u003e#21469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR1708\u003c/code\u003e false positives on nested functions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21177\"\u003e#21177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix suppression for empty dict without tuple key annotation (\u003ccode\u003ePLE1141\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21290\"\u003e#21290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add rule \u003ccode\u003eRUF066\u003c/code\u003e to detect unnecessary class properties (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21535\"\u003e#21535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Catch more dummy variable uses (\u003ccode\u003eRUF052\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19799\"\u003e#19799\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[server] Set severity for non-rule diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21559\"\u003e#21559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] Avoid invalid fix in (\u003ccode\u003eISC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21517\"\u003e#21517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eparser\u003c/code\u003e] Fix panic when parsing IPython escape command expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21480\"\u003e#21480\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow partial fixability indicator in statistics output (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21513\"\u003e#21513\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikeleppane\"\u003e\u003ccode\u003e@​mikeleppane\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/senekor\"\u003e\u003ccode\u003e@​senekor\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShaharNaveh\"\u003e\u003ccode\u003e@​ShaharNaveh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JumboBear\"\u003e\u003ccode\u003e@​JumboBear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prakhar1144\"\u003e\u003ccode\u003e@​prakhar1144\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tsvikas\"\u003e\u003ccode\u003e@​tsvikas\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.14.7\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.14.7/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://github.com/astral-sh/ruff/releases/download/0.14.7/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.7\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-11-28.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Handle string literal bindings in suspicious-url-open-usage (\u003ccode\u003eS310\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21469\"\u003e#21469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR1708\u003c/code\u003e false positives on nested functions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21177\"\u003e#21177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix suppression for empty dict without tuple key annotation (\u003ccode\u003ePLE1141\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21290\"\u003e#21290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add rule \u003ccode\u003eRUF066\u003c/code\u003e to detect unnecessary class properties (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21535\"\u003e#21535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Catch more dummy variable uses (\u003ccode\u003eRUF052\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19799\"\u003e#19799\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[server] Set severity for non-rule diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21559\"\u003e#21559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] Avoid invalid fix in (\u003ccode\u003eISC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21517\"\u003e#21517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eparser\u003c/code\u003e] Fix panic when parsing IPython escape command expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21480\"\u003e#21480\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow partial fixability indicator in statistics output (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21513\"\u003e#21513\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikeleppane\"\u003e\u003ccode\u003e@​mikeleppane\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/senekor\"\u003e\u003ccode\u003e@​senekor\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShaharNaveh\"\u003e\u003ccode\u003e@​ShaharNaveh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JumboBear\"\u003e\u003ccode\u003e@​JumboBear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prakhar1144\"\u003e\u003ccode\u003e@​prakhar1144\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tsvikas\"\u003e\u003ccode\u003e@​tsvikas\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-11-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Support new PySNMP API paths (\u003ccode\u003eS508\u003c/code\u003e, \u003ccode\u003eS509\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21374\"\u003e#21374\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdjust own-line comment placement between branches (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21185\"\u003e#21185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error when formatting attribute expressions with outer parentheses, parenthesized value, and trailing comment on value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20418\"\u003e#20418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic when formatting comments in unary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21501\"\u003e#21501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003efmt: skip\u003c/code\u003e for compound statements on a single line (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20633\"\u003e#20633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix \u003ccode\u003eFURB103\u003c/code\u003e autofix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21454\"\u003e#21454\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/ecab623fb2fe3846de4cafa0dfef0385a7245941\"\u003e\u003ccode\u003eecab623\u003c/code\u003e\u003c/a\u003e Bump 0.14.7 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21684\"\u003e#21684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42f152108aad444b7d65359aea931be4dd15dffd\"\u003e\u003ccode\u003e42f1521\u003c/code\u003e\u003c/a\u003e [ty] Generic types aliases (implicit and PEP 613) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21553\"\u003e#21553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/594b7b04d3b04bcf42861f86207017c8117678ca\"\u003e\u003ccode\u003e594b7b0\u003c/code\u003e\u003c/a\u003e [ty] Preserve quoting style when autofixing \u003ccode\u003eTypedDict\u003c/code\u003e keys (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21682\"\u003e#21682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b5b4917d7f4a324f5d32cc55dfb1d08e75cc9e6f\"\u003e\u003ccode\u003eb5b4917\u003c/code\u003e\u003c/a\u003e [ty] Fix override of final method summary (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21681\"\u003e#21681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0084e94f78742685ddacf2dab28530c2ece3393e\"\u003e\u003ccode\u003e0084e94\u003c/code\u003e\u003c/a\u003e [ty] Fix subtyping of \u003ccode\u003etype[Any]\u003c/code\u003e / \u003ccode\u003etype[T]\u003c/code\u003e and protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21678\"\u003e#21678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/566c959add8c5aa5d25fd14db513c792e4048b50\"\u003e\u003ccode\u003e566c959\u003c/code\u003e\u003c/a\u003e [ty] Rename \u003ccode\u003eReferenceRequestHandler\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21680\"\u003e#21680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8bcfc198b83051db0c8a3c7b8f0c8a8c339947c7\"\u003e\u003ccode\u003e8bcfc19\u003c/code\u003e\u003c/a\u003e [ty] Implement \u003ccode\u003etyping.final\u003c/code\u003e for methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21646\"\u003e#21646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c534bfaf01671b8020edd440bc7f4f22070af583\"\u003e\u003ccode\u003ec534bfa\u003c/code\u003e\u003c/a\u003e [ty] Implement patterns and typevars in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21671\"\u003e#21671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5e1b2eef5797b00de8329bf38ceacf5cacd00c87\"\u003e\u003ccode\u003e5e1b2ee\u003c/code\u003e\u003c/a\u003e [ty] implement rendering of \u003ccode\u003e.. code:: lang\u003c/code\u003e in docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21665\"\u003e#21665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/98681b9356bd0b8ef086cc54118b58de532c5310\"\u003e\u003ccode\u003e98681b9\u003c/code\u003e\u003c/a\u003e [ty] Add \u003ccode\u003edb\u003c/code\u003e parameter to \u003ccode\u003eParameters::new\u003c/code\u003e method (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21674\"\u003e#21674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.2...0.14.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `vermin` from 1.6.0 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/b70ff9611a01a2bf2f702aa537d14e71e330edba\"\u003e\u003ccode\u003eb70ff96\u003c/code\u003e\u003c/a\u003e Version 1.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/7e391d68963d7d796feb16f16f6b174a63bf9afe\"\u003e\u003ccode\u003e7e391d6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/netromdk/vermin/issues/309\"\u003e#309\u003c/a\u003e from netromdk/py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/06690b26d6c52c3097daef8400689ac122be4379\"\u003e\u003ccode\u003e06690b2\u003c/code\u003e\u003c/a\u003e [3.14] Template string literals detection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/ccc1b6345f3db5903366b1fa2ae0c2f3776b4d8a\"\u003e\u003ccode\u003eccc1b63\u003c/code\u003e\u003c/a\u003e [3.14] Add new rules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/8bb50725d5dfc70c8c611fbdf24b71d294ce7683\"\u003e\u003ccode\u003e8bb5072\u003c/code\u003e\u003c/a\u003e [3.14] Support ast.Constant where only ast.Str was used before\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/4957d625735c708971e7372c009942f2e46ba8df\"\u003e\u003ccode\u003e4957d62\u003c/code\u003e\u003c/a\u003e [actions] Run Bandit with py3.13 until py3.14 support arrives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/5dd0b3b37e8eb7ddc93ce5fb5ba5ae3d11e30c9c\"\u003e\u003ccode\u003e5dd0b3b\u003c/code\u003e\u003c/a\u003e Replace setup.py with pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/4aaf06b7b8ba23eddaa975d648d4e8d7c45264a9\"\u003e\u003ccode\u003e4aaf06b\u003c/code\u003e\u003c/a\u003e [flake8] Fix style\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/eb09cfa005308bc7d9bcc2e9275889a612466e78\"\u003e\u003ccode\u003eeb09cfa\u003c/code\u003e\u003c/a\u003e [actions] Update analysis requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/netromdk/vermin/commit/801c17ec82da8a6420c54dc8af6cbca3260ec508\"\u003e\u003ccode\u003e801c17e\u003c/code\u003e\u003c/a\u003e [actions] Test and analyze using py3.14\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/netromdk/vermin/compare/v1.6.0...v1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.13.5 to 4.14.3\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml` from 6.0.1 to 6.0.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lxml/lxml/blob/master/CHANGES.txt\"\u003elxml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e6.0.2 (2025-09-21)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eLP#2125278: Compilation with libxml2 2.15.0 failed.\nOriginal patch by Xi Ruoyao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSetting \u003ccode\u003edecompress=True\u003c/code\u003e in the parser had no effect in libxml2 2.15.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBinary wheels on Linux and macOS use the library version libxml2 2.14.6.\nSee \u003ca href=\"https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.6\"\u003ehttps://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.6\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTest failures in libxml2 2.15.0 were fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBinary wheels for Py3.9-3.11 on the \u003ccode\u003eriscv64\u003c/code\u003e architecture were added.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eError constants were updated to match libxml2 2.15.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBuilt using Cython 3.1.4.\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/lxml/lxml/commit/283d02ec8966c0e99f4666dc7bdd936479e97246\"\u003e\u003ccode\u003e283d02e\u003c/code\u003e\u003c/a\u003e Build: Minor readability cleanup.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/52cf97c1a473a78fb4a9d4bf4f45dc69dd67932b\"\u003e\u003ccode\u003e52cf97c\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Build: Avoid redundant manylinux2014 builds across newer jobs.\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/a21e4748eaedc4d6f8120afddfa496a5b887c73d\"\u003e\u003ccode\u003ea21e474\u003c/code\u003e\u003c/a\u003e Build: Avoid redundant manylinux2014 builds across newer jobs.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/58d4d2bf794dfb3bb66118a2db856a7174fcabe8\"\u003e\u003ccode\u003e58d4d2b\u003c/code\u003e\u003c/a\u003e Build: Upgrade libxml2 to 2.14.6.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/e5d80da388690cdcab15a7047aa9c617f66083b7\"\u003e\u003ccode\u003ee5d80da\u003c/code\u003e\u003c/a\u003e Build: Clean up and simplify target selection and environment setup in pyproj...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/e9133801e12bc2f3a5d589f70deb5a9621b2d009\"\u003e\u003ccode\u003ee913380\u003c/code\u003e\u003c/a\u003e Build: Limit optimised wheel builds to AMD64 and Arm64 to save time and resou...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/d22f6a1b9efa615bf48453251050cd8abd12e65a\"\u003e\u003ccode\u003ed22f6a1\u003c/code\u003e\u003c/a\u003e Build: bump actions/setup-python in the github-actions group (\u003ca href=\"https://redirect.github.com/lxml/lxml/issues/479\"\u003eGH-479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/f8fa76d97785d05a8376ec5e21a05997476e27f9\"\u003e\u003ccode\u003ef8fa76d\u003c/code\u003e\u003c/a\u003e Build: Prevent redundant branch wheel builds for pull requests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/b3e93721a6811cfd007dd829c89cd0406351b171\"\u003e\u003ccode\u003eb3e9372\u003c/code\u003e\u003c/a\u003e Build: bump pypa/cibuildwheel in the github-actions group (\u003ca href=\"https://redirect.github.com/lxml/lxml/issues/478\"\u003eGH-478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/a7ec229a147fb7618d00b44e4e30eeb1f521e15a\"\u003e\u003ccode\u003ea7ec229\u003c/code\u003e\u003c/a\u003e Prepare release of lxml 6.0.2.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lxml/lxml/compare/lxml-6.0.1...lxml-6.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-extra-types` from 2.10.5 to 2.10.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-extra-types/releases\"\u003epydantic-extra-types's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.10.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: update credit card brands by \u003ca href=\"https://github.com/LorhanSohaky\"\u003e\u003ccode\u003e@​LorhanSohaky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/325\"\u003epydantic/pydantic-extra-types#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix various documentation layout issues by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/328\"\u003epydantic/pydantic-extra-types#328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded test coverage for DomainStr validation including punycode and invalid inputs by \u003ca href=\"https://github.com/rhealakhotia\"\u003e\u003ccode\u003e@​rhealakhotia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/330\"\u003epydantic/pydantic-extra-types#330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ Add time parsing to \u003ccode\u003ependulum\u003c/code\u003e by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/331\"\u003epydantic/pydantic-extra-types#331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative path creation on Windows for fixtures by \u003ca href=\"https://github.com/denini08\"\u003e\u003ccode\u003e@​denini08\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/333\"\u003epydantic/pydantic-extra-types#333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump samuelcolvin/check-python-version from 4.1 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/336\"\u003epydantic/pydantic-extra-types#336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/334\"\u003epydantic/pydantic-extra-types#334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/335\"\u003epydantic/pydantic-extra-types#335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix-isbn-typos by \u003ca href=\"https://github.com/gem7318\"\u003e\u003ccode\u003e@​gem7318\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/337\"\u003epydantic/pydantic-extra-types#337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e♻️ refactor \u003ccode\u003emac_address\u003c/code\u003e validation logic by \u003ca href=\"https://github.com/Stormageddon37\"\u003e\u003ccode\u003e@​Stormageddon37\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/338\"\u003epydantic/pydantic-extra-types#338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 set \u003ccode\u003e@classmethod\u003c/code\u003e in \u003ccode\u003ephone_numbers\u003c/code\u003e schema by \u003ca href=\"https://github.com/Stormageddon37\"\u003e\u003ccode\u003e@​Stormageddon37\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/339\"\u003epydantic/pydantic-extra-types#339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📝 chore: fix random typos by \u003ca href=\"https://github.com/Stormageddon37\"\u003e\u003ccode\u003e@​Stormageddon37\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/340\"\u003epydantic/pydantic-extra-types#340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs: enhance docstring for \u003ccode\u003ePhoneNumber\u003c/code\u003e class with usage examples by \u003ca href=\"https://github.com/hengky-kurniawan-1\"\u003e\u003ccode\u003e@​hengky-kurniawan-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/341\"\u003epydantic/pydantic-extra-types#341\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded cron type by \u003ca href=\"https://github.com/Neko1313\"\u003e\u003ccode\u003e@​Neko1313\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/343\"\u003epydantic/pydantic-extra-types#343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔖 Release version 2.10.6 by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/344\"\u003epydantic/pydantic-extra-types#344\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/LorhanSohaky\"\u003e\u003ccode\u003e@​LorhanSohaky\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/325\"\u003epydantic/pydantic-extra-types#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rhealakhotia\"\u003e\u003ccode\u003e@​rhealakhotia\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/330\"\u003epydantic/pydantic-extra-types#330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denini08\"\u003e\u003ccode\u003e@​denini08\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/333\"\u003epydantic/pydantic-extra-types#333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gem7318\"\u003e\u003ccode\u003e@​gem7318\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/337\"\u003epydantic/pydantic-extra-types#337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stormageddon37\"\u003e\u003ccode\u003e@​Stormageddon37\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/338\"\u003epydantic/pydantic-extra-types#338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hengky-kurniawan-1\"\u003e\u003ccode\u003e@​hengky-kurniawan-1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/341\"\u003epydantic/pydantic-extra-types#341\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Neko1313\"\u003e\u003ccode\u003e@​Neko1313\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/343\"\u003epydantic/pydantic-extra-types#343\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-extra-types/compare/v2.10.5...v2.10.6\"\u003ehttps://github.com/pydantic/pydantic-extra-types/compare/v2.10.5...v2.10.6\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/pydantic/pydantic-extra-types/commit/bede93598e4b5971538b8c3684ee588ee79c7f68\"\u003e\u003ccode\u003ebede935\u003c/code\u003e\u003c/a\u003e 🔖 Release version 2.10.6 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/3c8675856b09cd758ad881d2432104213ae5072e\"\u003e\u003ccode\u003e3c86758\u003c/code\u003e\u003c/a\u003e :sparkles: add Cron type (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/7ec0329f4a3065d9c67027f22ee65802986b799c\"\u003e\u003ccode\u003e7ec0329\u003c/code\u003e\u003c/a\u003e 📝 docs: enhance docstring for  class with usage examples (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/f163d0779ff94dc0e5c719874d6fd41b684e097a\"\u003e\u003ccode\u003ef163d07\u003c/code\u003e\u003c/a\u003e 📝 chore: fix random typos (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/340\"\u003e#340\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/47aa78ee91b5834a47d87f224534b3c1cc509170\"\u003e\u003ccode\u003e47aa78e\u003c/code\u003e\u003c/a\u003e 🐛 set \u003ccode\u003e@classmethod\u003c/code\u003e in \u003ccode\u003ephone_numbers\u003c/code\u003e schema (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/339\"\u003e#339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/ecf1e330a25dce4170e0e8a3f58918fa42a1f8b0\"\u003e\u003ccode\u003eecf1e33\u003c/code\u003e\u003c/a\u003e ♻️ refactor \u003ccode\u003emac_address\u003c/code\u003e validation logic (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/c8a419ef3ebac5c2e55f5db710004913404f866b\"\u003e\u003ccode\u003ec8a419e\u003c/code\u003e\u003c/a\u003e docs: fix-isbn-typos (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/337\"\u003e#337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/095255cd319aa5d1cf720dd730cd50d529694546\"\u003e\u003ccode\u003e095255c\u003c/code\u003e\u003c/a\u003e ⬆ Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/335\"\u003e#335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/43f5eaa0d8011a36ffaed491ce27d1ab677921c8\"\u003e\u003ccode\u003e43f5eaa\u003c/code\u003e\u003c/a\u003e ⬆ Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/334\"\u003e#334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/e84d875a38be4b522fab8cf4b33f9de6757294be\"\u003e\u003ccode\u003ee84d875\u003c/code\u003e\u003c/a\u003e ⬆ Bump samuelcolvin/check-python-version from 4.1 to 5 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/336\"\u003e#336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-extra-types/compare/v2.10.5...v2.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `more-itertools` from 10.7.0 to 10.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/more-itertools/more-itertools/releases\"\u003emore-itertools's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 10.8.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix typo in version history for 10.7.0 by bbayles in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/981\"\u003emore-itertools/more-itertools#981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 980: Fix variable names: iterable vs iterator by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/982\"\u003emore-itertools/more-itertools#982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove docstrings for dft, idft, and multinomial by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/983\"\u003emore-itertools/more-itertools#983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a note about polynomial endianness by bbayles in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/984\"\u003emore-itertools/more-itertools#984\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd SPDX license identifier by cdce8p in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/978\"\u003emore-itertools/more-itertools#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove setup.py file by cdce8p in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/979\"\u003emore-itertools/more-itertools#979\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003ederangements\u003c/code\u003e by itself by bbayles in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/985\"\u003emore-itertools/more-itertools#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd derangements by debruijn in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/946\"\u003emore-itertools/more-itertools#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 986: argmin and argmax by bbayles in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/988\"\u003emore-itertools/more-itertools#988\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit-out the integer math functions by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/990\"\u003emore-itertools/more-itertools#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpelling, grammar, punctuation, and usage by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/991\"\u003emore-itertools/more-itertools#991\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the return type of more_itertools.batched by qobilidop in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/993\"\u003emore-itertools/more-itertools#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix duplicate words in version_history.rst by saadmanrafat in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/992\"\u003emore-itertools/more-itertools#992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove islice_extended memory usage when start\u0026lt;0 and step\u0026gt;0 by ben42code in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/995\"\u003emore-itertools/more-itertools#995\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnittest islice_extended impact on iterated elements lifecycle by ben42code in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/996\"\u003emore-itertools/more-itertools#996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003econvolve() is agnostic to endianness by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/997\"\u003emore-itertools/more-itertools#997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSample simplification by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/998\"\u003emore-itertools/more-itertools#998\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 1005: Document difference from builtin min() and max(). by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1008\"\u003emore-itertools/more-itertools#1008\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGeneral cleanups by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1007\"\u003emore-itertools/more-itertools#1007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken link by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1004\"\u003emore-itertools/more-itertools#1004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd option for nth_prime() to be approximated by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1002\"\u003emore-itertools/more-itertools#1002\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebefore_and_after improvement by pochmann3 in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1012\"\u003emore-itertools/more-itertools#1012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFast paths instead of applying an identity function by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1018\"\u003emore-itertools/more-itertools#1018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed-up _complex_sumprod() by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1000\"\u003emore-itertools/more-itertools#1000\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove islice_extended memory usage when stop\u0026lt;0 and step\u0026gt;0 by ben42code in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/999\"\u003emore-itertools/more-itertools#999\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd derangements() to the doc indexes by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1020\"\u003emore-itertools/more-itertools#1020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove readability/findability with combinatoric subsections by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1022\"\u003emore-itertools/more-itertools#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix 1009: Confused docstring for minmax() by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1021\"\u003emore-itertools/more-itertools#1021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003einterleave_longest\u003c/code\u003e by pochmann3 in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1027\"\u003emore-itertools/more-itertools#1027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 1001: fix last() when \u003cstrong\u003ereversed\u003c/strong\u003e is None by inventshah in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1028\"\u003emore-itertools/more-itertools#1028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 1029: fix batched IDE/help() docs by inventshah in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1031\"\u003emore-itertools/more-itertools#1031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003emark_ends\u003c/code\u003e by pochmann3 in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1035\"\u003emore-itertools/more-itertools#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd usage notes for sample() by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1037\"\u003emore-itertools/more-itertools#1037\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docstring and comment in private _nth_prime_bounds function by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1036\"\u003emore-itertools/more-itertools#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix linespacing by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1038\"\u003emore-itertools/more-itertools#1038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd running_median by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1039\"\u003emore-itertools/more-itertools#1039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erunning_median() with windowed data by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1040\"\u003emore-itertools/more-itertools#1040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin furo to 2024.08.06 by bbayles in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1043\"\u003emore-itertools/more-itertools#1043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Fix invisible REPL output in HTML dark mode by moreati in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1045\"\u003emore-itertools/more-itertools#1045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse python instead of python3 when running tests by ktbarrett in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1051\"\u003emore-itertools/more-itertools#1051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 1044: Add new tool: extract() by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1056\"\u003emore-itertools/more-itertools#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest 3.14.0-rc.2 by bbayles in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1060\"\u003emore-itertools/more-itertools#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eunzip\u003c/code\u003e: replace custom itemgetter by pochmann3 in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1059\"\u003emore-itertools/more-itertools#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003einterleave_randomly\u003c/code\u003e by ktbarrett in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1048\"\u003emore-itertools/more-itertools#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 1003: Multidimensional reshape() by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1062\"\u003emore-itertools/more-itertools#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGet coverage to 100% by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1065\"\u003emore-itertools/more-itertools#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove count_cycle() by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1066\"\u003emore-itertools/more-itertools#1066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify how derangements treats duplicate inputs by rhettinger in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/1069\"\u003emore-itertools/more-itertools#1069\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/more-itertools/more-itertools/commit/8c1a6ef241b51ff055e89219f050ccf4f15f37f6\"\u003e\u003ccode\u003e8c1a6ef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/issues/1071\"\u003e#1071\u003c/a\u003e from more-itertools/version-10.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/24be4400152530567fc308578ce5e8072ad77982\"\u003e\u003ccode\u003e24be440\u003c/code\u003e\u003c/a\u003e Add note for issue 1054\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/3dd5980a6d73bb9902a4ab1fb1eb05d512081f86\"\u003e\u003ccode\u003e3dd5980\u003c/code\u003e\u003c/a\u003e Add a note for issue 1063\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/2ce52d104921364729df909c03f52ae7e2085f82\"\u003e\u003ccode\u003e2ce52d1\u003c/code\u003e\u003c/a\u003e Update docs for 10.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/eae915618a81fa1263484630c892408fc5670d5a\"\u003e\u003ccode\u003eeae9156\u003c/code\u003e\u003c/a\u003e Bump version: 10.7.0 → 10.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/a80f1c56f513a2758445372f263efae6f7337561\"\u003e\u003ccode\u003ea80f1c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/issues/1068\"\u003e#1068\u003c/a\u003e from rhettinger/cleanup_tail\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/57015894e4f043f33b98d5565b720054e926bc14\"\u003e\u003ccode\u003e5701589\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/issues/1067\"\u003e#1067\u003c/a\u003e from rhettinger/reshape_beautification\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/58e0331c4e542ea950aa0e55bfecd2eeb9e641d8\"\u003e\u003ccode\u003e58e0331\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/issues/1069\"\u003e#1069\u003c/a\u003e from rhettinger/derangements_doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/9a3d7e31e6956446453ee0a9224b842bf21e3022\"\u003e\u003ccode\u003e9a3d7e3\u003c/code\u003e\u003c/a\u003e Clarify how derangements treats duplicate inputs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/c509b1434ebe5201a6f7298d7495da5914dd88d4\"\u003e\u003ccode\u003ec509b14\u003c/code\u003e\u003c/a\u003e Clean-up tail().  Prefer try/except over the Sized ABC.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/more-itertools/more-itertools/compare/v10.7.0...v10.8.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/reznakt/svglab/pull/69","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/reznakt%2Fsvglab/issues/69","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/69/packages"}},{"old_version":"1.3.0","new_version":"1.3.1","update_type":"patch","path":null,"pr_created_at":"2025-12-01T13:19:11.000Z","version_change":"1.3.0 → 1.3.1","issue":{"uuid":"3680986567","node_id":"PR_kwDOJpUnI862WJFs","number":111,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 50 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-01T10:38:09.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-01T13:19:11.000Z","updated_at":"2026-01-01T10:38:11.000Z","time_to_close":2668738,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":50,"packages":[{"name":"black","old_version":"25.9.0","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.10.7","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.0","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.13.3","new_version":"0.14.7","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"matplotlib","old_version":"3.10.6","new_version":"3.10.7","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"deptry","old_version":"0.23.1","new_version":"0.24.0","repository_url":"https://github.com/fpgmaas/deptry"},{"name":"pyarrow","old_version":"21.0.0","new_version":"22.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"anyio","old_version":"4.11.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"beautifulsoup4","old_version":"4.14.2","new_version":"4.14.3"},{"name":"bleach","old_version":"6.2.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"certifi","old_version":"2025.10.5","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cfgv","old_version":"3.4.0","new_version":"3.5.0","repository_url":"https://github.com/asottile/cfgv"},{"name":"charset-normalizer","old_version":"3.4.3","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.0","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"exceptiongroup","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.19.1","new_version":"3.20.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.60.1","new_version":"4.61.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"ipykernel","old_version":"6.30.1","new_version":"7.1.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ipywidgets","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"jupyterlab","old_version":"4.4.9","new_version":"4.5.0","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"jupyterlab-widgets","old_version":"3.0.15","new_version":"3.0.16","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"lark","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"numexpr","old_version":"2.13.1","new_version":"2.14.1","repository_url":"https://github.com/pydata/numexpr"},{"name":"pillow","old_version":"11.3.0","new_version":"12.0.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"psutil","old_version":"7.1.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"rpds-py","old_version":"0.27.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"ruamel-yaml","old_version":"0.18.15","new_version":"0.18.16"},{"name":"ruamel-yaml-clib","old_version":"0.2.14","new_version":"0.2.15"},{"name":"starlette","old_version":"0.48.0","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"tomli","old_version":"2.2.1","new_version":"2.3.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"types-pytz","old_version":"2025.2.0.20250809","new_version":"2025.2.0.20251108","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"uvicorn","old_version":"0.37.0","new_version":"0.38.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.34.0","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"webcolors","old_version":"24.11.1","new_version":"25.10.0","repository_url":"https://github.com/ubernostrum/webcolors"},{"name":"websocket-client","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/websocket-client/websocket-client"},{"name":"widgetsnbextension","old_version":"4.0.14","new_version":"4.0.15"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 47 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [black](https://github.com/psf/black) | `25.9.0` | `25.11.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.7` | `7.12.0` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.3` | `0.14.7` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.6` | `3.10.7` |\n| [deptry](https://github.com/fpgmaas/deptry) | `0.23.1` | `0.24.0` |\n| [pyarrow](https://github.com/apache/arrow) | `21.0.0` | `22.0.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.12.0` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.2` | `4.14.3` |\n| [bleach](https://github.com/mozilla/bleach) | `6.2.0` | `6.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.10.5` | `2025.11.12` |\n| [cfgv](https://github.com/asottile/cfgv) | `3.4.0` | `3.5.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.3` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.3.0` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.19.1` | `3.20.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.60.1` | `4.61.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.30.1` | `7.1.0` |\n| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.7` | `8.1.8` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.4.9` | `4.5.0` |\n| [jupyterlab-widgets](https://github.com/jupyter-widgets/ipywidgets) | `3.0.15` | `3.0.16` |\n| [lark](https://github.com/lark-parser/lark) | `1.3.0` | `1.3.1` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [numexpr](https://github.com/pydata/numexpr) | `2.13.1` | `2.14.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.3.0` | `12.0.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.4.0` | `4.5.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.0` | `7.1.3` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.1` | `0.30.0` |\n| ruamel-yaml | `0.18.15` | `0.18.16` |\n| ruamel-yaml-clib | `0.2.14` | `0.2.15` |\n| [starlette](https://github.com/Kludex/starlette) | `0.48.0` | `0.50.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.3.0` |\n| [types-pytz](https://github.com/typeshed-internal/stub_uploader) | `2025.2.0.20250809` | `2025.2.0.20251108` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.37.0` | `0.38.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.34.0` | `20.35.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [webcolors](https://github.com/ubernostrum/webcolors) | `24.11.1` | `25.10.0` |\n| [websocket-client](https://github.com/websocket-client/websocket-client) | `1.8.0` | `1.9.0` |\n| [widgetsnbextension](http://jupyter.org) | `4.0.14` | `4.0.15` |\n\n\nUpdates `black` from 25.9.0 to 25.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where python 3.12 generics syntax split line happens weirdly (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize type comments to form \u003ccode\u003e# type: \u0026lt;value\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e preview feature to respect \u003ccode\u003e# fmt: skip\u003c/code\u003e for compound\nstatements with semicolon-separated bodies (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eno_cache\u003c/code\u003e option to control caching behavior. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4803\"\u003e#4803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Linux binaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4773\"\u003e#4773\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWrite unchanged content to stdout when excluding formatting from stdin using pipes\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented BlackDClient. This simple python client allows to easily send formatting\nrequests to blackd (\u003ca href=\"https://redirect.github.com/psf/black/issues/4774\"\u003e#4774\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable 3.14 base CI (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to support the \u003ccode\u003erequired-version\u003c/code\u003e major-version-only\n\u0026quot;stability\u0026quot; format when using pyproject.toml (\u003ca href=\"https://redirect.github.com/psf/black/issues/4770\"\u003e#4770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for vim plugin users. It now handles independently vim version\u003c/li\u003e\n\u003cli\u003eVim: Warn on unsupported Vim and Python versions independently (\u003ca href=\"https://redirect.github.com/psf/black/issues/4772\"\u003e#4772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Print the import paths when importing black fails (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Fix handling of virtualenvs that have a different Python version (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where python 3.12 generics syntax split line happens weirdly (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize type comments to form \u003ccode\u003e# type: \u0026lt;value\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e preview feature to respect \u003ccode\u003e# fmt: skip\u003c/code\u003e for compound\nstatements with semicolon-separated bodies (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eno_cache\u003c/code\u003e option to control caching behavior. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4803\"\u003e#4803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Linux binaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4773\"\u003e#4773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWrite unchanged content to stdout when excluding formatting from stdin using pipes\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented BlackDClient. This simple python client allows to easily send formatting\nrequests to blackd (\u003ca href=\"https://redirect.github.com/psf/black/issues/4774\"\u003e#4774\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable 3.14 base CI (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to support the \u003ccode\u003erequired-version\u003c/code\u003e major-version-only\n\u0026quot;stability\u0026quot; format when using pyproject.toml (\u003ca href=\"https://redirect.github.com/psf/black/issues/4770\"\u003e#4770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for vim plugin users. It now handles independently vim version\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/05f0a8ce1f71fbb36e1e032d3b518c7b945089a2\"\u003e\u003ccode\u003e05f0a8c\u003c/code\u003e\u003c/a\u003e Prepare for 25.11.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4825\"\u003e#4825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ae17c61310e44401ca55d17a9c01db1dc03940a6\"\u003e\u003ccode\u003eae17c61\u003c/code\u003e\u003c/a\u003e Fix tests on pytest 9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4835\"\u003e#4835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/138745eca650aa59ab30458f7b1c026b66608a09\"\u003e\u003ccode\u003e138745e\u003c/code\u003e\u003c/a\u003e Include Windows and Python 3.14 in PR wheel build matrix, fix Windows build (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/18170d6d8d9bdde97d4cd3568cfa8be434a09ff3\"\u003e\u003ccode\u003e18170d6\u003c/code\u003e\u003c/a\u003e ci: add label for running all builds on a pull request (\u003ca href=\"https://redirect.github.com/psf/black/issues/4833\"\u003e#4833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0e793e3d7e0d12dbda1573fa1bb785b1f066ee7c\"\u003e\u003ccode\u003e0e793e3\u003c/code\u003e\u003c/a\u003e fix windows wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4830\"\u003e#4830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b71f36c9fda07930c83e22681e0ec08ddf5a3980\"\u003e\u003ccode\u003eb71f36c\u003c/code\u003e\u003c/a\u003e Use build[uv] as cibuildwheel frontend (\u003ca href=\"https://redirect.github.com/psf/black/issues/4831\"\u003e#4831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a7bd594493bb5cb703beee877a2df40556b0baaa\"\u003e\u003ccode\u003ea7bd594\u003c/code\u003e\u003c/a\u003e Skip free threaded builds in cibuildwheel (\u003ca href=\"https://redirect.github.com/psf/black/issues/4829\"\u003e#4829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/862dee91fa1259ca2bc00f10538b52a4959bdbe8\"\u003e\u003ccode\u003e862dee9\u003c/code\u003e\u003c/a\u003e Update cibuildwheel (\u003ca href=\"https://redirect.github.com/psf/black/issues/4828\"\u003e#4828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b5f354c56627640e0b853af51a51d9262bafa9f0\"\u003e\u003ccode\u003eb5f354c\u003c/code\u003e\u003c/a\u003e build: restrict to pytest 9.0 due to breakage in custom pytest_configure (\u003ca href=\"https://redirect.github.com/psf/black/issues/4827\"\u003e#4827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f705197f57149b79ed83cccf22e4fed19b48a7bf\"\u003e\u003ccode\u003ef705197\u003c/code\u003e\u003c/a\u003e t-string support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.9.0...25.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.7 to 7.12.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.12.0 — 2025-11-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe HTML report now shows separate coverage totals for statements and\nbranches, as well as the usual combined coverage percentage. Thanks to Ryuta\nOtsuka for the \u003ccode\u003ediscussion \u0026lt;issue 2081_\u0026gt;\u003c/code\u003e_ and the \u003ccode\u003eimplementation \u0026lt;pull 2085_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe JSON report now includes separate coverage totals for statements and\nbranches, thanks to \u003ccode\u003eRyuta Otsuka \u0026lt;pull 2090_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eexcept*\u003c/code\u003e clauses were not handled properly under the \u0026quot;sysmon\u0026quot;\nmeasurement core, causing KeyError exceptions as described in \u003ccode\u003eissue 2086\u003c/code\u003e_.\nThis is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now defend against aggressive mocking of \u003ccode\u003eopen()\u003c/code\u003e that could cause\nerrors inside coverage.py.  An example of a failure is in \u003ccode\u003eissue 2083\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: in unusual cases where a test suite intentionally exhausts the system's\nfile descriptors to test handling errors in \u003ccode\u003eopen()\u003c/code\u003e, coverage.py would\nfail when trying to open source files, as described in \u003ccode\u003eissue 2091\u003c/code\u003e_.  This\nis now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eA small tweak to the HTML report: file paths now use thin spaces around\nslashes to make them easier to read.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2081: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2081\"\u003ecoveragepy/coveragepy#2081\u003c/a\u003e\n.. _issue 2083: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2083\"\u003ecoveragepy/coveragepy#2083\u003c/a\u003e\n.. _pull 2085: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2085\"\u003ecoveragepy/coveragepy#2085\u003c/a\u003e\n.. _issue 2086: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2086\"\u003ecoveragepy/coveragepy#2086\u003c/a\u003e\n.. _pull 2090: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2090\"\u003ecoveragepy/coveragepy#2090\u003c/a\u003e\n.. _issue 2091: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2091\"\u003ecoveragepy/coveragepy#2091\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-11-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.11.3 — 2025-11-09\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the 7.11.1 changes meant that conflicts between a requested measurement\ncore and other settings would raise an error. This was a breaking change from\nprevious behavior, as reported in \u003ccode\u003eissue 2076\u003c/code\u003e_ and \u003ccode\u003eissue 2078\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eThe previous behavior has been restored: when the requested core conflicts\nwith other settings, another core is used instead, and a warning is issued.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFor contributors: the repo has moved from Ned's \u003ccode\u003enedbat GitHub account\u003c/code\u003e_ to\nthe \u003ccode\u003ecoveragepy GitHub organization\u003c/code\u003e_. The default branch has changed from\nmaster to main.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63db2b12d7a4fedda90061553ccf2ec6849c8a3d\"\u003e\u003ccode\u003e63db2b1\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/598bbc3a51a492860547e7c3d8d076b811efe1bb\"\u003e\u003ccode\u003e598bbc3\u003c/code\u003e\u003c/a\u003e docs: prep for 7.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/557dd15f75bc4b4bf93b6163a9e6b2b29647d90d\"\u003e\u003ccode\u003e557dd15\u003c/code\u003e\u003c/a\u003e feat: add statement and branch coverage percentages to JSON report (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2090\"\u003e#2090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e18359c834f0f428425b62fc564ec6d106d413e5\"\u003e\u003ccode\u003ee18359c\u003c/code\u003e\u003c/a\u003e fix: don't crash if open() genuinely fails. \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2091\"\u003e#2091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/fff5e59b28e0a4660a5e19975eb02aeffcb05a01\"\u003e\u003ccode\u003efff5e59\u003c/code\u003e\u003c/a\u003e docs: thanks, Ryuta Otsuka \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2085\"\u003e#2085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/97bf6251ef0c40174645d6fb0352a25df3531e72\"\u003e\u003ccode\u003e97bf625\u003c/code\u003e\u003c/a\u003e docs: support files for the sample html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8320b746113ec269437d3465873ff7ae19eeccc1\"\u003e\u003ccode\u003e8320b74\u003c/code\u003e\u003c/a\u003e style(html): tweak the styling for the new stmt/branch stats \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2085\"\u003e#2085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/7e081839b0987c6a9b3bba4efe86e80deb1c1776\"\u003e\u003ccode\u003e7e08183\u003c/code\u003e\u003c/a\u003e feat(templite): {% else %}\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/4abe253c579db1b3d72a4b2dfd52bf9b7c2fc2aa\"\u003e\u003ccode\u003e4abe253\u003c/code\u003e\u003c/a\u003e feat: add statement and branch coverage columns to index.html report (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2085\"\u003e#2085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ddbafa90974ff4de00467f05ba712d6d21937920\"\u003e\u003ccode\u003eddbafa9\u003c/code\u003e\u003c/a\u003e build: no longer need to work around a pytest/iTerm2 bug\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.10.7...7.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMypy Release Notes\u003c/h1\u003e\n\u003ch2\u003eNext Release\u003c/h2\u003e\n\u003ch3\u003eDrop Support for Python 3.9\u003c/h3\u003e\n\u003cp\u003eMypy no longer supports running with Python 3.9, which has reached end-of-life.\nWhen running mypy with Python 3.10+, it is still possible to type check code\nthat needs to support Python 3.9 with the \u003ccode\u003e--python-version 3.9\u003c/code\u003e argument.\nSupport for this will be dropped in the first half of 2026!\u003c/p\u003e\n\u003cp\u003eContributed by Marc Mueller (PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20156\"\u003e20156\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eMypy 1.19\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.19.0 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\nimprovements and bug fixes. You can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Support Ending Soon\u003c/h3\u003e\n\u003cp\u003eThis is the last mypy feature release that supports Python 3.9, which reached\nend of life in October 2025.\u003c/p\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to a more dynamic SCC processing logic (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20053\"\u003e20053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up type aliases (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19810\"\u003e19810\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed‑Format Cache Improvements\u003c/h3\u003e\n\u003cp\u003eMypy uses a cache by default to speed up incremental runs by reusing partial results\nfrom earlier runs. Mypy 1.18 added a new binary fixed-format cache representation as\nan experimental feature. The feature is no longer experimental, and we are planning\nto enable it by default in a future mypy release (possibly 1.20), since it's faster\nand uses less space than the original, JSON-based cache format. Use\n\u003ccode\u003e--fixed-format-cache\u003c/code\u003e to enable the fixed-format cache.\u003c/p\u003e\n\u003cp\u003eMypy now has an extra dependency on the \u003ccode\u003elibrt\u003c/code\u003e PyPI package, as it's needed for\ncache serialization and deserialization.\u003c/p\u003e\n\u003cp\u003eMypy ships with a tool to convert fixed-format cache files to the old JSON format.\nExample of how to use this:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e$ python -m mypy.exportjson .mypy_cache/.../my_module.data.ff\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0f068c9ec604daa09e69c92545b059f4b44f566e\"\u003e\u003ccode\u003e0f068c9\u003c/code\u003e\u003c/a\u003e Remove +dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6d5cf52e67da306b62455cdce4ce9a9ccec35d02\"\u003e\u003ccode\u003e6d5cf52\u003c/code\u003e\u003c/a\u003e Various updates to 1.19 changelog (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20304\"\u003e#20304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3c813083b27c87cf3a32e7422191b02bf59fab6e\"\u003e\u003ccode\u003e3c81308\u003c/code\u003e\u003c/a\u003e Add draft version of 1.19 release notes (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20296\"\u003e#20296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/1999a20e9898f673fa2f4c9a91790c075141ba71\"\u003e\u003ccode\u003e1999a20\u003c/code\u003e\u003c/a\u003e [mypyc] librt base64: use existing SIMD CPU dispatch by customizing build fla...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/1b94fbb9fbc581de7e057d71e9892e3acbf9a7d3\"\u003e\u003ccode\u003e1b94fbb\u003c/code\u003e\u003c/a\u003e [mypyc] Fix vtable pointer with inherited dunder new (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/13369cb25fe450f755f63e59156b86df84c08b3d\"\u003e\u003ccode\u003e13369cb\u003c/code\u003e\u003c/a\u003e [mypyc] Fix crash on super in generator (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20291\"\u003e#20291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a087a5894935cfdbc2eba27a6d04ebca38fd6659\"\u003e\u003ccode\u003ea087a58\u003c/code\u003e\u003c/a\u003e Update import map when new modules added (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20271\"\u003e#20271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/35e843cc38cedc1bdf87d9937c06d51189ad0e45\"\u003e\u003ccode\u003e35e843c\u003c/code\u003e\u003c/a\u003e [mypyc] Add efficient librt.base64.b64decode (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20263\"\u003e#20263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/094f66dc742cec2d69add9296fb21cdef50624d0\"\u003e\u003ccode\u003e094f66d\u003c/code\u003e\u003c/a\u003e [mypyc] Add \u003cstrong\u003erepr\u003c/strong\u003e to AssignmentTarget subclasses (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20258\"\u003e#20258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0738db3f9d336622923c7ee143e1c3adf7600a31\"\u003e\u003ccode\u003e0738db3\u003c/code\u003e\u003c/a\u003e Do not push partial types to the binder (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20202\"\u003e#20202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.0\"\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.3.0 to 4.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/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.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\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.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\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/1af6c8fa9502336c6977c2ff3e79185bd97a6e57\"\u003e\u003ccode\u003e1af6c8f\u003c/code\u003e\u003c/a\u003e v4.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/3358a3b54077cd8c8c99618aed003b771a21cb65\"\u003e\u003ccode\u003e3358a3b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e from pre-commit/hazmat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/bdf68790b78158268bbc8482f76491a61d75809a\"\u003e\u003ccode\u003ebdf6879\u003c/code\u003e\u003c/a\u003e add pre-commit hazmat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/e436690f140cbbe1d0f359654edf3ab9ecb8da2d\"\u003e\u003ccode\u003ee436690\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3584\"\u003e#3584\u003c/a\u003e from pre-commit/exitstack\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8d34f95308fc4c14dea3d3e90153acfdaf55e2de\"\u003e\u003ccode\u003e8d34f95\u003c/code\u003e\u003c/a\u003e use ExitStack instead of start + stop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/9c7ea88ab95cb063cb0f0b74f395ff7b9cdbe0c5\"\u003e\u003ccode\u003e9c7ea88\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3583\"\u003e#3583\u003c/a\u003e from pre-commit/forward-compat-map-manifest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/844dacc168d68a32553ecf8a99178ab395fdb11e\"\u003e\u003ccode\u003e844dacc\u003c/code\u003e\u003c/a\u003e add forward-compat error message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/6a1d543e523a02bbaad43da7df594cedff242abd\"\u003e\u003ccode\u003e6a1d543\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3582\"\u003e#3582\u003c/a\u003e from pre-commit/move-gc-back\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/66278a9a0b69a69fde820d2b85a7e198eae52981\"\u003e\u003ccode\u003e66278a9\u003c/code\u003e\u003c/a\u003e move logic for gc back to commands.gc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/1b32c50bc7e2f6b603b7ce26ecdf67c9c9dee3c6\"\u003e\u003ccode\u003e1b32c50\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3579\"\u003e#3579\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.13.3 to 0.14.7\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.14.7\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-11-28.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Handle string literal bindings in suspicious-url-open-usage (\u003ccode\u003eS310\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21469\"\u003e#21469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR1708\u003c/code\u003e false positives on nested functions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21177\"\u003e#21177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix suppression for empty dict without tuple key annotation (\u003ccode\u003ePLE1141\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21290\"\u003e#21290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add rule \u003ccode\u003eRUF066\u003c/code\u003e to detect unnecessary class properties (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21535\"\u003e#21535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Catch more dummy variable uses (\u003ccode\u003eRUF052\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19799\"\u003e#19799\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[server] Set severity for non-rule diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21559\"\u003e#21559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] Avoid invalid fix in (\u003ccode\u003eISC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21517\"\u003e#21517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eparser\u003c/code\u003e] Fix panic when parsing IPython escape command expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21480\"\u003e#21480\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow partial fixability indicator in statistics output (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21513\"\u003e#21513\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikeleppane\"\u003e\u003ccode\u003e@​mikeleppane\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/senekor\"\u003e\u003ccode\u003e@​senekor\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShaharNaveh\"\u003e\u003ccode\u003e@​ShaharNaveh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JumboBear\"\u003e\u003ccode\u003e@​JumboBear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prakhar1144\"\u003e\u003ccode\u003e@​prakhar1144\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tsvikas\"\u003e\u003ccode\u003e@​tsvikas\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.14.7\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.14.7/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://github.com/astral-sh/ruff/releases/download/0.14.7/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.7\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-11-28.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Handle string literal bindings in suspicious-url-open-usage (\u003ccode\u003eS310\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21469\"\u003e#21469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR1708\u003c/code\u003e false positives on nested functions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21177\"\u003e#21177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix suppression for empty dict without tuple key annotation (\u003ccode\u003ePLE1141\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21290\"\u003e#21290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add rule \u003ccode\u003eRUF066\u003c/code\u003e to detect unnecessary class properties (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21535\"\u003e#21535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Catch more dummy variable uses (\u003ccode\u003eRUF052\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19799\"\u003e#19799\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[server] Set severity for non-rule diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21559\"\u003e#21559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] Avoid invalid fix in (\u003ccode\u003eISC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21517\"\u003e#21517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eparser\u003c/code\u003e] Fix panic when parsing IPython escape command expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21480\"\u003e#21480\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow partial fixability indicator in statistics output (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21513\"\u003e#21513\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikeleppane\"\u003e\u003ccode\u003e@​mikeleppane\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/senekor\"\u003e\u003ccode\u003e@​senekor\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShaharNaveh\"\u003e\u003ccode\u003e@​ShaharNaveh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JumboBear\"\u003e\u003ccode\u003e@​JumboBear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prakhar1144\"\u003e\u003ccode\u003e@​prakhar1144\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tsvikas\"\u003e\u003ccode\u003e@​tsvikas\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-11-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Support new PySNMP API paths (\u003ccode\u003eS508\u003c/code\u003e, \u003ccode\u003eS509\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21374\"\u003e#21374\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdjust own-line comment placement between branches (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21185\"\u003e#21185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error when formatting attribute expressions with outer parentheses, parenthesized value, and trailing comment on value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20418\"\u003e#20418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic when formatting comments in unary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21501\"\u003e#21501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003efmt: skip\u003c/code\u003e for compound statements on a single line (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20633\"\u003e#20633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix \u003ccode\u003eFURB103\u003c/code\u003e autofix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21454\"\u003e#21454\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/ecab623fb2fe3846de4cafa0dfef0385a7245941\"\u003e\u003ccode\u003eecab623\u003c/code\u003e\u003c/a\u003e Bump 0.14.7 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21684\"\u003e#21684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42f152108aad444b7d65359aea931be4dd15dffd\"\u003e\u003ccode\u003e42f1521\u003c/code\u003e\u003c/a\u003e [ty] Generic types aliases (implicit and PEP 613) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21553\"\u003e#21553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/594b7b04d3b04bcf42861f86207017c8117678ca\"\u003e\u003ccode\u003e594b7b0\u003c/code\u003e\u003c/a\u003e [ty] Preserve quoting style when autofixing \u003ccode\u003eTypedDict\u003c/code\u003e keys (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21682\"\u003e#21682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b5b4917d7f4a324f5d32cc55dfb1d08e75cc9e6f\"\u003e\u003ccode\u003eb5b4917\u003c/code\u003e\u003c/a\u003e [ty] Fix override of final method summary (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21681\"\u003e#21681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0084e94f78742685ddacf2dab28530c2ece3393e\"\u003e\u003ccode\u003e0084e94\u003c/code\u003e\u003c/a\u003e [ty] Fix subtyping of \u003ccode\u003etype[Any]\u003c/code\u003e / \u003ccode\u003etype[T]\u003c/code\u003e and protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21678\"\u003e#21678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/566c959add8c5aa5d25fd14db513c792e4048b50\"\u003e\u003ccode\u003e566c959\u003c/code\u003e\u003c/a\u003e [ty] Rename \u003ccode\u003eReferenceRequestHandler\u003c/code\u003e file (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21680\"\u003e#21680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8bcfc198b83051db0c8a3c7b8f0c8a8c339947c7\"\u003e\u003ccode\u003e8bcfc19\u003c/code\u003e\u003c/a\u003e [ty] Implement \u003ccode\u003etyping.final\u003c/code\u003e for methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21646\"\u003e#21646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c534bfaf01671b8020edd440bc7f4f22070af583\"\u003e\u003ccode\u003ec534bfa\u003c/code\u003e\u003c/a\u003e [ty] Implement patterns and typevars in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21671\"\u003e#21671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5e1b2eef5797b00de8329bf38ceacf5cacd00c87\"\u003e\u003ccode\u003e5e1b2ee\u003c/code\u003e\u003c/a\u003e [ty] implement rendering of \u003ccode\u003e.. code:: lang\u003c/code\u003e in docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21665\"\u003e#21665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/98681b9356bd0b8ef086cc54118b58de532c5310\"\u003e\u003ccode\u003e98681b9\u003c/code\u003e\u003c/a\u003e [ty] Add \u003ccode\u003edb\u003c/code\u003e parameter to \u003ccode\u003eParameters::new\u003c/code\u003e method (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21674\"\u003e#21674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.3...0.14.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.2 to 9.0.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\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\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/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.0\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.0 (2025-11-05)\u003c/h1\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/1367\"\u003e#1367\u003c/a\u003e: \u003cstrong\u003eSupport for subtests\u003c/strong\u003e has been added.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003esubtests \u0026lt;subtests\u0026gt;\u003c/code\u003e are an alternative to parametrization, useful in situations where the parametrization values are not all known at collection time.\u003c/p\u003e\n\u003cp\u003eExample:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003edef contains_docstring(p: Path) -\u0026gt; bool:\n    \u0026quot;\u0026quot;\u0026quot;Return True if the given Python file contains a top-level docstring.\u0026quot;\u0026quot;\u0026quot;\n    ...\n\u003cp\u003edef test_py_files_contain_docstring(subtests: pytest.Subtests) -\u0026gt; None:\u003cbr /\u003e\nfor path in Path.cwd().glob(\u0026quot;*.py\u0026quot;):\u003cbr /\u003e\nwith subtests.test(path=str(path)):\u003cbr /\u003e\nassert contains_docstring(path)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\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/pytest-dev/pytest/commit/d1b64aa60b9e1a0fcfaf03af7ebeb185f1024a87\"\u003e\u003ccode\u003ed1b64aa\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0a497c7b213ea950821319fd80dce219b0033f32\"\u003e\u003ccode\u003e0a497c7\u003c/code\u003e\u003c/a\u003e regendoc: remove CI environment variables (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13950\"\u003e#13950\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13951\"\u003e#13951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a9f7e6ed579b8844e302067b7f05122b82993355\"\u003e\u003ccode\u003ea9f7e6e\u003c/code\u003e\u003c/a\u003e 🧪 Run \u003ccode\u003egh release\u003c/code\u003e w/o Git in CI/CD (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13947\"\u003e#13947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2682a6607304f1f5bb5a2140340003cdf5121bc4\"\u003e\u003ccode\u003e2682a66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13944\"\u003e#13944\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/bef7d34f1...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a999997e36c53d189ecded3369bf35bfe2be96ad\"\u003e\u003ccode\u003ea999997\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13941\"\u003e#13941\u003c/a\u003e from nicoddemus/min-pre-commit-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/4bd63a0ead81d740aa767a4384d3b0b4c18f2ef2\"\u003e\u003ccode\u003e4bd63a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13935\"\u003e#13935\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/ce8b8a7b4...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/15f93b332c1c3ec9c200c0ad3d55af5a2158e0db\"\u003e\u003ccode\u003e15f93b3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e from webknjaz/maintenance/tox-pep517-env-setuptools...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0fa11ae3f79d06dc9e2f1f7c81ade4a1126d9ef3\"\u003e\u003ccode\u003e0fa11ae\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13927\"\u003e#13927\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/3d8075743...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/fa454700133c7b2cc960cba3b1cd09cc048c25a0\"\u003e\u003ccode\u003efa45470\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13926\"\u003e#13926\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d587e0cf8...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b4e3973505a2b7a2caa17ccc392d91a6ad73e122\"\u003e\u003ccode\u003eb4e3973\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13922\"\u003e#13922\u003c/a\u003e from bluetech/fix-argparse-userwarning\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `matplotlib` from 3.10.6 to 3.10.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/matplotlib/matplotlib/releases\"\u003ematplotlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eREL: v3.10.7\u003c/h2\u003e\n\u003cp\u003eThis is the latest bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eThe most important update in this release is that the minimum version\nof \u003ccode\u003epyparsing\u003c/code\u003e has been updated to version 3.0.\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/matplotlib/matplotlib/commit/4aeb773422464799998d900198b35cb80e94b3e1\"\u003e\u003ccode\u003e4aeb773\u003c/code\u003e\u003c/a\u003e REL: v3.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/080add32f6b3c82075ccfb1111b21d5ff9e9c075\"\u003e\u003ccode\u003e080add3\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.6-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/a604a8beed19bdda1355a29a12ab2904367cf140\"\u003e\u003ccode\u003ea604a8b\u003c/code\u003e\u003c/a\u003e Github Stats v3.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/f550261fadf30702a42bc85f71e3489a3c2f6b99\"\u003e\u003ccode\u003ef550261\u003c/code\u003e\u003c/a\u003e Zenodo v3.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/9a5e3e4253a3deaa5c83451b1208b5d46759ff7c\"\u003e\u003ccode\u003e9a5e3e4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30628\"\u003e#30628\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30626-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/eb8cb0ce31f6965713a5d46fe4fadf2dffb74773\"\u003e\u003ccode\u003eeb8cb0c\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30626\"\u003e#30626\u003c/a\u003e: MNT: Fix new F401 unused imports warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/8fadc71e0e372f05aa0305ef425c5152d70d6f39\"\u003e\u003ccode\u003e8fadc71\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/29745\"\u003e#29745\u003c/a\u003e: Use PEP8 style method and function names from (\u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30589\"\u003e#30589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/098876ee6f695f6c5297d4cf3f974c9d64ff4c79\"\u003e\u003ccode\u003e098876e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30614\"\u003e#30614\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30612-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/eb42d8637ba5891aa806fa6b0ed73835c16b2741\"\u003e\u003ccode\u003eeb42d86\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30612\"\u003e#30612\u003c/a\u003e: MNT: update black pin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/4a9c187a73fce92074b262612b3285dcff2d615e\"\u003e\u003ccode\u003e4a9c187\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30572\"\u003e#30572\u003c/a\u003e from QuLogic/auto-backport-of-pr-30571-on-v3.10.x\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.6...v3.10.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `deptry` from 0.23.1 to 0.24.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fpgmaas/deptry/releases\"\u003edeptry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003ch4\u003ePython 3.9 support dropped\u003c/h4\u003e\n\u003cp\u003eSupport for Python 3.9 has been dropped, as it has reached its end of life.\u003c/p\u003e\n\u003ch4\u003ePyPy 3.10 support dropped, 3.11 added\u003c/h4\u003e\n\u003cp\u003eSupport for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd GitHub Actions annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublish wheels for PyPy 3.11 and drop 3.10 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFull Changelog\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\"\u003ehttps://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fpgmaas/deptry/blob/main/CHANGELOG.md\"\u003edeptry's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.24.0 - 2025-11-09\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003ch4\u003ePython 3.9 support dropped\u003c/h4\u003e\n\u003cp\u003eSupport for Python 3.9 has been dropped, as it has reached its end of life.\u003c/p\u003e\n\u003ch4\u003ePyPy 3.10 support dropped, 3.11 added\u003c/h4\u003e\n\u003cp\u003eSupport for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd GitHub Actions annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublish wheels for PyPy 3.11 and drop 3.10 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFull Changelog\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\"\u003ehttps://github.com/fpgmaas/deptry/compare/0.23.1...0.24.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/fpgmaas/deptry/commit/4cc2d65ce1343957c911ca45709d6080cb9f82c3\"\u003e\u003ccode\u003e4cc2d65\u003c/code\u003e\u003c/a\u003e docs(changelog): add 0.24.0 release notes (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1330\"\u003e#1330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/8757b318e9974bbfa7ec65dabf999bc935ac026f\"\u003e\u003ccode\u003e8757b31\u003c/code\u003e\u003c/a\u003e chore: sync all dependency groups by default and run mypy locally (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1337\"\u003e#1337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/5ebc5c066831dd3dfeef7e79a4ae4f5934d744b9\"\u003e\u003ccode\u003e5ebc5c0\u003c/code\u003e\u003c/a\u003e feat: add github annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/aa59b6fa66bd3468ad681317de14189606a9c04e\"\u003e\u003ccode\u003eaa59b6f\u003c/code\u003e\u003c/a\u003e fix(deps): update ruff rust to v0.14.4 (patch) (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1335\"\u003e#1335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/87a6b87428641bc7cab3b22d00d788e28ed86ae9\"\u003e\u003ccode\u003e87a6b87\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1336\"\u003e#1336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/6b938ae73633b1a1f46e3888c9673b49d5e9dd60\"\u003e\u003ccode\u003e6b938ae\u003c/code\u003e\u003c/a\u003e chore(deps): update uv-version to v0.9.8 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1334\"\u003e#1334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/92c35bab5ad0a11d2becc31e4cdbe4413a746233\"\u003e\u003ccode\u003e92c35ba\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook woodruffw/zizmor-pre-commit to v1.16.3 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/a8be2902812426acaf00ff344dc93a48f30d48d7\"\u003e\u003ccode\u003ea8be290\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.4 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1332\"\u003e#1332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/6abefd1237071ba0e8d3fc1c9e02a402ccde11f6\"\u003e\u003ccode\u003e6abefd1\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency mkdocs-material to v9.6.23 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/6b556861d72024d1f8b5f8c8ead9d1b48cef0f9e\"\u003e\u003ccode\u003e6b55686\u003c/code\u003e\u003c/a\u003e test: update all test dependencies (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyarrow` from 21.0.0 to 22.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/arrow/releases\"\u003epyarrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Arrow 22.0.0\u003c/h2\u003e\n\u003cp\u003eRelease Notes URL: \u003ca href=\"https://arrow.apache.org/release/22.0.0.html\"\u003ehttps://arrow.apache.org/release/22.0.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eApache Arrow 22.0.0 RC1\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 22.0.0 RC1\u003c/p\u003e\n\u003ch2\u003eApache Arrow 22.0.0 RC0\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 22.0.0 RC0\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/apache/arrow/commit/5aeb5f217f1ba39c428c9b481f393bd37097f69e\"\u003e\u003ccode\u003e5aeb5f2\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update versions for 22.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/81563ad2c53f886a4901191e0f2d05238398e177\"\u003e\u003ccode\u003e81563ad\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update .deb/.rpm changelogs for 22.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/c5055366fb5d6ae6a7c51ae50135ebf3203b48af\"\u003e\u003ccode\u003ec505536\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update CHANGELOG.md for 22.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/e04fafb1242ce428b5068f075de58579992f8c5c\"\u003e\u003ccode\u003ee04fafb\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47838\"\u003eGH-47838\u003c/a\u003e: [C++][Parquet] Set Variant specification version to 1 to align with...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/07e4d5aeadf0c24542309edc3056ed26dfc5f49c\"\u003e\u003ccode\u003e07e4d5a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47819\"\u003eGH-47819\u003c/a\u003e: [CI][Packaging][Release] Avoid triggering Linux packages on release...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/e2fa94cf96c5b21924451ca52a6b522618c28a9e\"\u003e\u003ccode\u003ee2fa94c\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47809\"\u003eGH-47809\u003c/a\u003e: [CI][Release] Fix Windows verification job trying to install patch ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/2140934e4d79587ffa91e5d1462ac7ee673d2df0\"\u003e\u003ccode\u003e2140934\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47738\"\u003eGH-47738\u003c/a\u003e: [R] Update NEWS.md for 22.0.0 (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47739\"\u003e#47739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/08f5304074ce550c342f97e107081ea61a51e3da\"\u003e\u003ccode\u003e08f5304\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47803\"\u003eGH-47803\u003c/a\u003e: [C++][Parquet] Fix read out of bounds on invalid RLE data (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47804\"\u003e#47804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/d5b8e2b151730312ef80a975627ef7ff2423a232\"\u003e\u003ccode\u003ed5b8e2b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47438\"\u003eGH-47438\u003c/a\u003e: [Python][Packaging] Set up wheel building for Python 3.14 (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47616\"\u003e#47616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/618f6090118606f83a93cdd88e47868db9c61b8f\"\u003e\u003ccode\u003e618f609\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47795\"\u003eGH-47795\u003c/a\u003e: [Archery] Add support for custom Docker registry (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47796\"\u003e#47796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/arrow/compare/apache-arrow-21.0.0...apache-arrow-22.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.11.0 to 4.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for asyncio's \u003ca href=\"https://docs.python.org/3/library/asyncio-graph.html\"\u003etask call graphs\u003c/a\u003e on Python 3.14 and later when using AnyIO's task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded an asynchronous implementation of the \u003ccode\u003efunctools\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1001\"\u003e#1001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003euvloop=True\u003c/code\u003e on Windows via the \u003ca href=\"https://github.com/Vizonex/Winloop\"\u003ewinloop\u003c/a\u003e implementation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/960\"\u003e#960\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for use as a context manager to \u003ccode\u003eanyio.lowlevel.RunVar\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e__all__\u003c/code\u003e declarations to public submodules (\u003ccode\u003eanyio.lowlevel\u003c/code\u003e etc.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1009\"\u003e#1009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to set the token count of a \u003ccode\u003eCapacityLimiter\u003c/code\u003e to zero (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1019\"\u003e#1019\u003c/a\u003e; requires Python 3.10 or later when using Trio)\u003c/li\u003e\n\u003cli\u003eAdded parameters \u003ccode\u003ecase_sensitive\u003c/code\u003e and \u003ccode\u003erecurse_symlinks\u003c/code\u003e along with support for path-like objects to \u003ccode\u003eanyio.Path.glob()\u003c/code\u003e and \u003ccode\u003eanyio.Path.rglob()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1033\"\u003e#1033\u003c/a\u003e; PR by \u003ca href=\"https://github.com/northisup\"\u003e\u003ccode\u003e@​northisup\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped \u003ccode\u003esniffio\u003c/code\u003e as a direct dependency and added the \u003ccode\u003eget_available_backends()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not raising \u003ccode\u003eClosedResourceError\u003c/code\u003e and \u003ccode\u003eBrokenResourceError\u003c/code\u003e on asyncio. Previously, a non-AnyIO exception was raised in such cases (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not checkpointing before writing data on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1002\"\u003e#1002\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a race condition where cancelling a \u003ccode\u003eFuture\u003c/code\u003e from \u003ccode\u003eBlockingPortal.start_task_soon()\u003c/code\u003e would sometimes not cancel the async function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1011\"\u003e#1011\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the presence of the pytest plugin causing breakage with older versions of pytest (\u0026lt;= 6.1.2) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1028\"\u003e#1028\u003c/a\u003e; PR by \u003ca href=\"https://github.com/saper\"\u003e\u003ccode\u003e@​saper\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a rarely occurring \u003ccode\u003eRuntimeError: Set changed size during iteration\u003c/code\u003e while shutting down the process pool when using the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/bc021b634291223d6829c0a689152173443a8545\"\u003e\u003ccode\u003ebc021b6\u003c/code\u003e\u003c/a\u003e Fixed the download-artifact settings to retain the expected behavior\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/c6000aa2837f75733f3c09c454f5a31eb9f9f536\"\u003e\u003ccode\u003ec6000aa\u003c/code\u003e\u003c/a\u003e Corrected the format of the version in the changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9d1bfe0da4261bcef3c10cd31218237805a89937\"\u003e\u003ccode\u003e9d1bfe0\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/77f7ce25e12c9becf5081105a47b1914e50a3e0a\"\u003e\u003ccode\u003e77f7ce2\u003c/code\u003e\u003c/a\u003e Fixed RuntimeError while shutting down the asyncio process pool (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1039\"\u003e#1039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/aecc666e6b3b40f977ee715d141bdd89711b45cb\"\u003e\u003ccode\u003eaecc666\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1036\"\u003e#1036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e5569adf98394dfabebccf215a04d05d7819b506\"\u003e\u003ccode\u003ee5569ad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/dde3ab8583cb194e663f6fb87703a4a79e2701eb\"\u003e\u003ccode\u003edde3ab8\u003c/code\u003e\u003c/a\u003e Moved a changelog entry to its correct position\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/250d4f183245bf7ee5ead0ff39d521cda2b8d617\"\u003e\u003ccode\u003e250d4f1\u003c/code\u003e\u003c/a\u003e Restore compatibility with pytest\u0026lt;=6.1.2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1030\"\u003e#1030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/3708e227838e2f51464900cf806b25c30ca458a7\"\u003e\u003ccode\u003e3708e22\u003c/code\u003e\u003c/a\u003e Fixed a typo in the documentation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1035\"\u003e#1035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9adbe08c55e725b0388dcc4ab7556875da881a4c\"\u003e\u003ccode\u003e9adbe08\u003c/code\u003e\u003c/a\u003e Add new params to Path.glob \u0026amp; Path.rglob introduced since 3.12 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1034\"\u003e#1034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.11.0...4.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `arrow` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/arrow-py/arrow/releases\"\u003earrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.4.0\u003c/h2\u003e\n\u003ch2\u003eADDED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eweek_start\u003c/code\u003e parameter to \u003ccode\u003efloor()\u003c/code\u003e and \u003ccode\u003eceil()\u003c/code\u003e methods. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1222\"\u003e#1222\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1222\"\u003earrow-py/arrow#1222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eFORMAT_RFC3339_STRICT\u003c/code\u003e with a T separator. [PR \u003ca href=\"https://redirect.github.c...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-pre-system/pull/111","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-pre-system/issues/111","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/111/packages"}},{"old_version":"1.2.2","new_version":"1.3.1","update_type":"minor","path":null,"pr_created_at":"2025-12-01T07:40:02.000Z","version_change":"1.2.2 → 1.3.1","issue":{"uuid":"3679686363","node_id":"PR_kwDOQDraYs62RtGJ","number":7,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 30 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-12-08T06:33:44.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-01T07:40:02.000Z","updated_at":"2025-12-08T06:33:46.000Z","time_to_close":600822,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":30,"packages":[{"name":"django","old_version":"4.2.24","new_version":"5.2.8","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"django-compressor","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/django-compressor/django-compressor"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"boto3","old_version":"1.40.27","new_version":"1.42.0","repository_url":"https://github.com/boto/boto3"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"38.2.0","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"9.0.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.3","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.148.5","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 30 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `5.2.8` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [django-compressor](https://github.com/django-compressor/django-compressor) | `4.5.1` | `4.6.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.42.0` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.12.0` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `38.2.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.0` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `9.0.0` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.2` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.3` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.148.5` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 5.2.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47fe39af56ecd0ad73b9c7562511015e96b91b80\"\u003e\u003ccode\u003e47fe39a\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.8 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac9fcf6eb2c909f4150c5287808f49170ce1f9e2\"\u003e\u003ccode\u003eac9fcf6\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-64459 -- Avoided propagating invalid arguments to Q on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6703f364d767e949c5b0e4016433ef75063b4f9b\"\u003e\u003ccode\u003e6703f36\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64459 -- Prevented SQL injections in Q/QuerySet via th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f5d904b63751dea9ffc3b0e046404a7fa5881ac\"\u003e\u003ccode\u003e4f5d904\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedire...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/cbdf128cb316bccf9ca3b3b4966e57bd050bfc8a\"\u003e\u003ccode\u003ecbdf128\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36704\"\u003e#36704\u003c/a\u003e -- Fixed system check error for proxy model with a compo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6775888470317a6d69121779b489bb2dc7350318\"\u003e\u003ccode\u003e6775888\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36696\"\u003e#36696\u003c/a\u003e -- Fixed NameError when inspecting functions with deferr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d5dfffaae52b9dcb4857d42b1e2902290a5c5e3c\"\u003e\u003ccode\u003ed5dfffa\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.8, 5.1.14, and 4.2.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/368f955c371cab5db18e9e239d10560cf15f5ea4\"\u003e\u003ccode\u003e368f955\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36681\"\u003e#36681\u003c/a\u003e -- Removed English pluralization bias from example in do...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/71267c97db211f1d7f1b8b794ceb2167a7619a4d\"\u003e\u003ccode\u003e71267c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35095\"\u003e#35095\u003c/a\u003e -- Clarified Swiss number formatting in docs/topics/i18n...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9b37bd5fe73b0d614ad8e503071d6f7bf2bdf6b2\"\u003e\u003ccode\u003e9b37bd5\u003c/code\u003e\u003c/a\u003e [5.2.x] Made RemoteTestResultTest.test_pickle_errors_detection() compatible w...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...5.2.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on 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/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.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 `django-compressor` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-compressor/django-compressor/blob/develop/docs/changelog.txt\"\u003edjango-compressor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev4.6 (2025-11-10)\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eFull list of changes from v4.5.1 \u0026lt;https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with latest BS4.\u003c/li\u003e\n\u003cli\u003eRemoved top pin for rcssmin and rjsmin dependencies.\u003c/li\u003e\n\u003cli\u003eAvoid compressing the same node concurrently in offline compression.\u003c/li\u003e\n\u003cli\u003eAvoid use of deprecated ast.Constant.s\u003c/li\u003e\n\u003cli\u003eOfficially support Django 6.0\u003c/li\u003e\n\u003cli\u003eOfficially support Django 5.2\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Django 5.0\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 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/django-compressor/django-compressor/commit/3ada994897cf982f97fc4c934be42eb1e0b71b9a\"\u003e\u003ccode\u003e3ada994\u003c/code\u003e\u003c/a\u003e Prepare 4.6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/1baa82a6cf6942eb12007217f26195a95df727e2\"\u003e\u003ccode\u003e1baa82a\u003c/code\u003e\u003c/a\u003e Remove CI testing for EOL Django 5.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/8706a52b740e7555abefc8fba1eaae1986ded1a5\"\u003e\u003ccode\u003e8706a52\u003c/code\u003e\u003c/a\u003e Add CI testing for Python 3.14 and Django 6.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/7be9ce2cefedf59302207728e383fa7811232d59\"\u003e\u003ccode\u003e7be9ce2\u003c/code\u003e\u003c/a\u003e Bump brotli, lxml, and coverage test dependencies.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/d6fd8136febd1ba409b366c7471db8763522d91d\"\u003e\u003ccode\u003ed6fd813\u003c/code\u003e\u003c/a\u003e Remove test version pinning for rcssmin and rjsmin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/2b46e7d1724109ebb5db49b76f008dc039f0a9db\"\u003e\u003ccode\u003e2b46e7d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1307\"\u003e#1307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/b97bb05836eb6a42d2746d43792e9d13f041b615\"\u003e\u003ccode\u003eb97bb05\u003c/code\u003e\u003c/a\u003e Disable bs4's multi valued attributes (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1296\"\u003e#1296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/4e5433076300508e1c3648da3345ae606386eb3f\"\u003e\u003ccode\u003e4e54330\u003c/code\u003e\u003c/a\u003e Migrate packaging to pyproject.toml (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/872f8d52ce51957bccf4a91338d177c2ea4a3908\"\u003e\u003ccode\u003e872f8d5\u003c/code\u003e\u003c/a\u003e Remove version pinning for rcssmin and rjsmin (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1312\"\u003e#1312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-compressor/django-compressor/commit/cc38666efb13c6e0b355cf273f56b783d7157e29\"\u003e\u003ccode\u003ecc38666\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/django-compressor/django-compressor/issues/1311\"\u003e#1311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-compressor/django-compressor/compare/4.5.1...4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove initial Release Drafter config (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c0b74ed58f933bffd160c60a58620f672710ff7c\"\u003ec0b74ed\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/martinblech/xmltodict/commit/d079849136b031c471ec96a168ad7859ed5994ff\"\u003e\u003ccode\u003ed079849\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e\u003ccode\u003e25b61a4\u003c/code\u003e\u003c/a\u003e fix: allow DOCTYPE with disable_entities=True (default)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a2a9ab7e0692a62f64d97ff12553d0d53368c854\"\u003e\u003ccode\u003ea2a9ab7\u003c/code\u003e\u003c/a\u003e ci(publish): allow uploading release assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/656e6af9543e640fda7e96d6bdd6e693756687be\"\u003e\u003ccode\u003e656e6af\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003e\u003ccode\u003ec986d2d\u003c/code\u003e\u003c/a\u003e fix: fail closed when entities disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e\u003ccode\u003e3d4d2d3\u003c/code\u003e\u003c/a\u003e fix: validate XML comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b4a5f2a3f04aff68384486e957632c8438396fd6\"\u003e\u003ccode\u003eb4a5f2a\u003c/code\u003e\u003c/a\u003e refactor: remove jython-specific parsing branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e\u003ccode\u003e6b464fc\u003c/code\u003e\u003c/a\u003e docs: clarify process_comments docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/34daa304d443e49113d195294d99c6f58ce4714c\"\u003e\u003ccode\u003e34daa30\u003c/code\u003e\u003c/a\u003e refactor: remove unused helper functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e\u003ccode\u003e2025b5c\u003c/code\u003e\u003c/a\u003e docs: clarify behavior for empty lists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003c...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"}},{"old_version":"1.3.0","new_version":"1.3.1","update_type":"patch","path":null,"pr_created_at":"2025-11-25T10:52:15.000Z","version_change":"1.3.0 → 1.3.1","issue":{"uuid":"3662533526","node_id":"PR_kwDOPF_5m861Y_wt","number":76,"state":"open","title":"chore(python)(deps): bump the python-dependencies group across 1 directory with 73 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-25T10:52:15.000Z","updated_at":"2025-11-25T13:02:22.164Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(python)(deps): bump","group_name":"python-dependencies","update_count":73,"packages":[{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"attrs","old_version":"25.3.0","new_version":"25.4.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"bleach","old_version":"6.2.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"blinker","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/pallets-eco/blinker"},{"name":"build","old_version":"1.2.2.post1","new_version":"1.3.0","repository_url":"https://github.com/pypa/build"},{"name":"cachecontrol","old_version":"0.14.3","new_version":"0.14.4","repository_url":"https://github.com/psf/cachecontrol"},{"name":"cachetools","old_version":"6.2.0","new_version":"6.2.2","repository_url":"https://github.com/tkem/cachetools"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"cli-helpers","old_version":"2.3.1","new_version":"2.7.0","repository_url":"https://github.com/dbcli/cli_helpers"},{"name":"click","old_version":"8.1.7","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"contourpy","old_version":"1.3.2","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"coverage","old_version":"7.3.4","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"deprecated","old_version":"1.2.18","new_version":"1.3.1","repository_url":"https://github.com/laurent-laporte-pro/deprecated"},{"name":"docutils","old_version":"0.18.1","new_version":"0.22.3","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"fastapi","old_version":"0.121.2","new_version":"0.122.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"flask","old_version":"3.0.3","new_version":"3.1.2","repository_url":"https://github.com/pallets/flask"},{"name":"freezegun","old_version":"1.3.1","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"fsspec","old_version":"2025.9.0","new_version":"2025.10.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"google-auth","old_version":"2.41.1","new_version":"2.43.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-auth-oauthlib","old_version":"1.2.2","new_version":"1.2.3","repository_url":"https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib"},{"name":"grpcio","old_version":"1.75.1","new_version":"1.76.0","repository_url":"https://github.com/grpc/grpc"},{"name":"h5py","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/h5py/h5py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"ipython","old_version":"9.6.0","new_version":"9.7.0","repository_url":"https://github.com/ipython/ipython"},{"name":"ipywidgets","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"jiter","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jupyter","old_version":"1.0.0","new_version":"1.1.1"},{"name":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"jupyterlab-widgets","old_version":"3.0.15","new_version":"3.0.16","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"lark","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"libcst","old_version":"1.7.0","new_version":"1.8.6","repository_url":"https://github.com/Instagram/LibCST"},{"name":"litecli","old_version":"1.12.3","new_version":"1.17.0","repository_url":"https://github.com/dbcli/litecli"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"ml-dtypes","old_version":"0.5.3","new_version":"0.5.4","repository_url":"https://github.com/jax-ml/ml_dtypes"},{"name":"mutmut","old_version":"3.3.1","new_version":"3.4.0","repository_url":"https://github.com/boxed/mutmut"},{"name":"mypy","old_version":"1.5.1","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"networkx","old_version":"3.5","new_version":"3.6","repository_url":"https://github.com/networkx/networkx"},{"name":"numpy","old_version":"2.0.2","new_version":"2.3.5","repository_url":"https://github.com/numpy/numpy"},{"name":"objection","old_version":"1.11.0","new_version":"1.12.2","repository_url":"https://github.com/sensepost/objection"},{"name":"openai","old_version":"2.8.0","new_version":"2.8.1","repository_url":"https://github.com/openai/openai-python"},{"name":"optree","old_version":"0.17.0","new_version":"0.18.0","repository_url":"https://github.com/metaopt/optree"},{"name":"packageurl-python","old_version":"0.17.5","new_version":"0.17.6","repository_url":"https://github.com/package-url/packageurl-python"},{"name":"pep517","old_version":"0.13.0","new_version":"0.13.1","repository_url":"https://github.com/pypa/pep517"},{"name":"pexpect","old_version":"4.8.0","new_version":"4.9.0","repository_url":"https://github.com/pexpect/pexpect"},{"name":"prompt-toolkit","old_version":"3.0.48","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"psutil","old_version":"7.1.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycodestyle","old_version":"2.10.0","new_version":"2.14.0","repository_url":"https://github.com/PyCQA/pycodestyle"},{"name":"pyflakes","old_version":"3.0.1","new_version":"3.4.0","repository_url":"https://github.com/PyCQA/pyflakes"},{"name":"pyparsing","old_version":"3.0.9","new_version":"3.2.5","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytest-mock","old_version":"3.12.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.2.0","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"rpds-py","old_version":"0.27.1","new_version":"0.29.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"scipy","old_version":"1.15.3","new_version":"1.16.3","repository_url":"https://github.com/scipy/scipy"},{"name":"seaborn","old_version":"0.12.2","new_version":"0.13.2","repository_url":"https://github.com/mwaskom/seaborn"},{"name":"sqlparse","old_version":"0.5.1","new_version":"0.5.3","repository_url":"https://github.com/andialbrecht/sqlparse"},{"name":"starlette","old_version":"0.49.3","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.2.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"textual","old_version":"6.2.1","new_version":"6.6.0","repository_url":"https://github.com/Textualize/textual"},{"name":"tinycss2","old_version":"1.4.0","new_version":"1.5.1","repository_url":"https://github.com/Kozea/tinycss2"},{"name":"types-requests","old_version":"2.31.0.2","new_version":"2.32.4.20250913","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.2.14","repository_url":"https://github.com/jquast/wcwidth"},{"name":"websocket-client","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/websocket-client/websocket-client"},{"name":"werkzeug","old_version":"3.1.1","new_version":"3.1.3","repository_url":"https://github.com/pallets/werkzeug"},{"name":"widgetsnbextension","old_version":"4.0.14","new_version":"4.0.15"},{"name":"celery","old_version":"5.4.0","new_version":"5.5.3","repository_url":"https://github.com/celery/celery"},{"name":"celery","old_version":"5.4.0","new_version":"5.5.3","repository_url":"https://github.com/celery/celery"},{"name":"kombu","old_version":"5.4.2","new_version":"5.6.0","repository_url":"https://github.com/celery/kombu"},{"name":"amqp","old_version":"5.2.0","new_version":"5.3.1","repository_url":"https://github.com/celery/py-amqp"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 73 updates in the /python-ai-service directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `25.3.0` | `25.4.0` |\n| [bleach](https://github.com/mozilla/bleach) | `6.2.0` | `6.3.0` |\n| [blinker](https://github.com/pallets-eco/blinker) | `1.8.2` | `1.9.0` |\n| [build](https://github.com/pypa/build) | `1.2.2.post1` | `1.3.0` |\n| [cachecontrol](https://github.com/psf/cachecontrol) | `0.14.3` | `0.14.4` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.0` | `6.2.2` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.4.4` |\n| [cli-helpers](https://github.com/dbcli/cli_helpers) | `2.3.1` | `2.7.0` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.1` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.3.4` | `7.12.0` |\n| [deprecated](https://github.com/laurent-laporte-pro/deprecated) | `1.2.18` | `1.3.1` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.18.1` | `0.22.3` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.121.2` | `0.122.0` |\n| [flask](https://github.com/pallets/flask) | `3.0.3` | `3.1.2` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.3.1` | `1.5.5` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.9.0` | `2025.10.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.41.1` | `2.43.0` |\n| [google-auth-oauthlib](https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib) | `1.2.2` | `1.2.3` |\n| [grpcio](https://github.com/grpc/grpc) | `1.75.1` | `1.76.0` |\n| [h5py](https://github.com/h5py/h5py) | `3.14.0` | `3.15.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [ipython](https://github.com/ipython/ipython) | `9.6.0` | `9.7.0` |\n| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.7` | `8.1.8` |\n| [jiter](https://github.com/pydantic/jiter) | `0.11.0` | `0.12.0` |\n| [jupyter](https://jupyter.org) | `1.0.0` | `1.1.1` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [jupyterlab-widgets](https://github.com/jupyter-widgets/ipywidgets) | `3.0.15` | `3.0.16` |\n| [lark](https://github.com/lark-parser/lark) | `1.3.0` | `1.3.1` |\n| [libcst](https://github.com/Instagram/LibCST) | `1.7.0` | `1.8.6` |\n| [litecli](https://github.com/dbcli/litecli) | `1.12.3` | `1.17.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [ml-dtypes](https://github.com/jax-ml/ml_dtypes) | `0.5.3` | `0.5.4` |\n| [mutmut](https://github.com/boxed/mutmut) | `3.3.1` | `3.4.0` |\n| [mypy](https://github.com/python/mypy) | `1.5.1` | `1.18.2` |\n| [networkx](https://github.com/networkx/networkx) | `3.5` | `3.6` |\n| [numpy](https://github.com/numpy/numpy) | `2.0.2` | `2.3.5` |\n| [objection](https://github.com/sensepost/objection) | `1.11.0` | `1.12.2` |\n| [openai](https://github.com/openai/openai-python) | `2.8.0` | `2.8.1` |\n| [optree](https://github.com/metaopt/optree) | `0.17.0` | `0.18.0` |\n| [packageurl-python](https://github.com/package-url/packageurl-python) | `0.17.5` | `0.17.6` |\n| [pep517](https://github.com/pypa/pep517) | `0.13.0` | `0.13.1` |\n| [pexpect](https://github.com/pexpect/pexpect) | `4.8.0` | `4.9.0` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.48` | `3.0.52` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.0` | `7.1.3` |\n| [pycodestyle](https://github.com/PyCQA/pycodestyle) | `2.10.0` | `2.14.0` |\n| [pyflakes](https://github.com/PyCQA/pyflakes) | `3.0.1` | `3.4.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.0.9` | `3.2.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.12.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.2.0` | `2.4.0` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.1` | `0.29.0` |\n| [scipy](https://github.com/scipy/scipy) | `1.15.3` | `1.16.3` |\n| [seaborn](https://github.com/mwaskom/seaborn) | `0.12.2` | `0.13.2` |\n| [sqlparse](https://github.com/andialbrecht/sqlparse) | `0.5.1` | `0.5.3` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.3` | `0.50.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.2.0` |\n| [textual](https://github.com/Textualize/textual) | `6.2.1` | `6.6.0` |\n| [tinycss2](https://github.com/Kozea/tinycss2) | `1.4.0` | `1.5.1` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.31.0.2` | `2.32.4.20250913` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n| [websocket-client](https://github.com/websocket-client/websocket-client) | `1.8.0` | `1.9.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.1` | `3.1.3` |\n| [widgetsnbextension](http://jupyter.org) | `4.0.14` | `4.0.15` |\n| [celery](https://github.com/celery/celery) | `5.4.0` | `5.5.3` |\n| [celery[redis]](https://github.com/celery/celery) | `5.4.0` | `5.5.3` |\n| [kombu](https://github.com/celery/kombu) | `5.4.2` | `5.6.0` |\n| [amqp](https://github.com/celery/py-amqp) | `5.2.0` | `5.3.1` |\n\n\nUpdates `arrow` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/arrow-py/arrow/releases\"\u003earrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.4.0\u003c/h2\u003e\n\u003ch2\u003eADDED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eweek_start\u003c/code\u003e parameter to \u003ccode\u003efloor()\u003c/code\u003e and \u003ccode\u003eceil()\u003c/code\u003e methods. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1222\"\u003e#1222\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1222\"\u003earrow-py/arrow#1222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eFORMAT_RFC3339_STRICT\u003c/code\u003e with a T separator. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1201\"\u003e#1201\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1201\"\u003earrow-py/arrow#1201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Macedonian in Latin locale support. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1200\"\u003e#1200\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1200\"\u003earrow-py/arrow#1200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Persian/Farsi locale support. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1190\"\u003e#1190\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1190\"\u003earrow-py/arrow#1190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded week and weeks to Thai locale timeframes. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1218\"\u003e#1218\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1218\"\u003earrow-py/arrow#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded weeks to Catalan locale. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1189\"\u003e#1189\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1189\"\u003earrow-py/arrow#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Persian names of months, month-abbreviations and day-abbreviations in Gregorian calendar. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1172\"\u003e#1172\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1172\"\u003earrow-py/arrow#1172\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCHANGED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated Arrow to use ZoneInfo for timezones instead of pytz. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1217\"\u003e#1217\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1217\"\u003earrow-py/arrow#1217\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFIXED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed humanize month limits. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1224\"\u003e#1224\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1224\"\u003earrow-py/arrow#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed type hint of \u003ccode\u003eArrow.__getattr__\u003c/code\u003e. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1171\"\u003e#1171\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1171\"\u003earrow-py/arrow#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed spelling and removed poorly used expressions in Korean locale. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1181\"\u003e#1181\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1181\"\u003earrow-py/arrow#1181\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eshift()\u003c/code\u003e method for issue \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1145\"\u003e#1145\u003c/a\u003e. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1194\"\u003e#1194\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1194\"\u003earrow-py/arrow#1194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved Greek locale translations (seconds, days, \u0026quot;ago\u0026quot;, and month typo). [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1184\"\u003e#1184\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1184\"\u003earrow-py/arrow#1184\u003c/a\u003e), [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1186\"\u003e#1186\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1186\"\u003earrow-py/arrow#1186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAddressed \u003ccode\u003edatetime.utcnow\u003c/code\u003e deprecation warning. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1182\"\u003e#1182\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1182\"\u003earrow-py/arrow#1182\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eINTERNAL\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded codecov test results. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1223\"\u003e#1223\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1223\"\u003earrow-py/arrow#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated CI dependencies (actions/setup-python, actions/checkout, codecov/codecov-action, actions/cache).\u003c/li\u003e\n\u003cli\u003eAdded docstrings to parser.py. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1010\"\u003e#1010\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1010\"\u003earrow-py/arrow#1010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated Python versions support and bumped CI dependencies. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1177\"\u003e#1177\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1177\"\u003earrow-py/arrow#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded dependabot for GitHub actions. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1193\"\u003e#1193\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1193\"\u003earrow-py/arrow#1193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMoved dateutil types to test requirements. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1183\"\u003e#1183\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1183\"\u003earrow-py/arrow#1183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded documentation link for \u003ccode\u003earrow.format\u003c/code\u003e. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1180\"\u003e#1180\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1180\"\u003earrow-py/arrow#1180\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/arrow-py/arrow/blob/master/CHANGELOG.rst\"\u003earrow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0 (2025-10-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[ADDED] Added \u003ccode\u003eweek_start\u003c/code\u003e parameter to \u003ccode\u003efloor()\u003c/code\u003e and \u003ccode\u003eceil()\u003c/code\u003e methods. \u003ccode\u003ePR [#1222](https://github.com/arrow-py/arrow/issues/1222) \u0026lt;https://github.com/arrow-py/arrow/pull/1222\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added \u003ccode\u003eFORMAT_RFC3339_STRICT\u003c/code\u003e with a T separator. \u003ccode\u003ePR [#1201](https://github.com/arrow-py/arrow/issues/1201) \u0026lt;https://github.com/arrow-py/arrow/pull/1201\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added Macedonian in Latin locale support. \u003ccode\u003ePR [#1200](https://github.com/arrow-py/arrow/issues/1200) \u0026lt;https://github.com/arrow-py/arrow/pull/1200\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added Persian/Farsi locale support. \u003ccode\u003ePR [#1190](https://github.com/arrow-py/arrow/issues/1190) \u0026lt;https://github.com/arrow-py/arrow/pull/1190\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added week and weeks to Thai locale timeframes. \u003ccode\u003ePR [#1218](https://github.com/arrow-py/arrow/issues/1218) \u0026lt;https://github.com/arrow-py/arrow/pull/1218\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added weeks to Catalan locale. \u003ccode\u003ePR [#1189](https://github.com/arrow-py/arrow/issues/1189) \u0026lt;https://github.com/arrow-py/arrow/pull/1189\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added Persian names of months, month-abbreviations and day-abbreviations in Gregorian calendar. \u003ccode\u003ePR [#1172](https://github.com/arrow-py/arrow/issues/1172) \u0026lt;https://github.com/arrow-py/arrow/pull/1172\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[CHANGED] Migrated Arrow to use ZoneInfo for timezones instead of pytz. \u003ccode\u003ePR [#1217](https://github.com/arrow-py/arrow/issues/1217) \u0026lt;https://github.com/arrow-py/arrow/pull/1217\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Fixed humanize month limits. \u003ccode\u003ePR [#1224](https://github.com/arrow-py/arrow/issues/1224) \u0026lt;https://github.com/arrow-py/arrow/pull/1224\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Fixed type hint of \u003ccode\u003eArrow.__getattr__\u003c/code\u003e. \u003ccode\u003ePR [#1171](https://github.com/arrow-py/arrow/issues/1171) \u0026lt;https://github.com/arrow-py/arrow/pull/1171\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Fixed spelling and removed poorly used expressions in Korean locale. \u003ccode\u003ePR [#1181](https://github.com/arrow-py/arrow/issues/1181) \u0026lt;https://github.com/arrow-py/arrow/pull/1181\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Updated \u003ccode\u003eshift()\u003c/code\u003e method for issue \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1145\"\u003e#1145\u003c/a\u003e. \u003ccode\u003ePR [#1194](https://github.com/arrow-py/arrow/issues/1194) \u0026lt;https://github.com/arrow-py/arrow/pull/1194\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Improved Greek locale translations (seconds, days, \u0026quot;ago\u0026quot;, and month typo). \u003ccode\u003ePR [#1184](https://github.com/arrow-py/arrow/issues/1184) \u0026lt;https://github.com/arrow-py/arrow/pull/1184\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003ePR [#1186](https://github.com/arrow-py/arrow/issues/1186) \u0026lt;https://github.com/arrow-py/arrow/pull/1186\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e[FIXED] Addressed \u003ccode\u003edatetime.utcnow\u003c/code\u003e deprecation warning. \u003ccode\u003ePR [#1182](https://github.com/arrow-py/arrow/issues/1182) \u0026lt;https://github.com/arrow-py/arrow/pull/1182\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added codecov test results. \u003ccode\u003ePR [#1223](https://github.com/arrow-py/arrow/issues/1223) \u0026lt;https://github.com/arrow-py/arrow/pull/1223\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Updated CI dependencies (actions/setup-python, actions/checkout, codecov/codecov-action, actions/cache).\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added docstrings to parser.py. \u003ccode\u003ePR [#1010](https://github.com/arrow-py/arrow/issues/1010) \u0026lt;https://github.com/arrow-py/arrow/pull/1010\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Updated Python versions support and bumped CI dependencies. \u003ccode\u003ePR [#1177](https://github.com/arrow-py/arrow/issues/1177) \u0026lt;https://github.com/arrow-py/arrow/pull/1177\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added dependabot for GitHub actions. \u003ccode\u003ePR [#1193](https://github.com/arrow-py/arrow/issues/1193) \u0026lt;https://github.com/arrow-py/arrow/pull/1193\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Moved dateutil types to test requirements. \u003ccode\u003ePR [#1183](https://github.com/arrow-py/arrow/issues/1183) \u0026lt;https://github.com/arrow-py/arrow/pull/1183\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added documentation link for \u003ccode\u003earrow.format\u003c/code\u003e. \u003ccode\u003ePR [#1180](https://github.com/arrow-py/arrow/issues/1180) \u0026lt;https://github.com/arrow-py/arrow/pull/1180\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/arrow-py/arrow/commit/2c1f5185ad66bf3b1cf8c0812f4b4fe65ac46656\"\u003e\u003ccode\u003e2c1f518\u003c/code\u003e\u003c/a\u003e Bump release CI flow to use Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/2483bfea4ec8a4da609036aba3ce1b32cb571875\"\u003e\u003ccode\u003e2483bfe\u003c/code\u003e\u003c/a\u003e Bump changelog date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/c61de9299733da6d4a7e8badabae43684a3f9da2\"\u003e\u003ccode\u003ec61de92\u003c/code\u003e\u003c/a\u003e Bump version and add changelog (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1228\"\u003e#1228\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/c3bb589536b283e3e3886d1d6bc01a6374c8e656\"\u003e\u003ccode\u003ec3bb589\u003c/code\u003e\u003c/a\u003e Update pypy CI version and update pre-commit dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/85cd905332d108303da1cbd0f2336fcae058147f\"\u003e\u003ccode\u003e85cd905\u003c/code\u003e\u003c/a\u003e Run tests on next Python release (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/4c8c44aefc0e5504b9c3cbf0d6adbb0ec4aa4571\"\u003e\u003ccode\u003e4c8c44a\u003c/code\u003e\u003c/a\u003e Add week_start parameter to floor() and ceil() (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1222\"\u003e#1222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/7ccbe66122ca53d90acf9c69c37aa95c81a1fe89\"\u003e\u003ccode\u003e7ccbe66\u003c/code\u003e\u003c/a\u003e add codecov test results (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1223\"\u003e#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/05cd9b47d0db1c22b44cb739832f1b9701855313\"\u003e\u003ccode\u003e05cd9b4\u003c/code\u003e\u003c/a\u003e fix humanize month limits (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/ea756ea779468b0c6a9f45439dc05cfd5e71ee1e\"\u003e\u003ccode\u003eea756ea\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1220\"\u003e#1220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/86f7520f15b2dd46f9c49f71ce5c15bbc537ed67\"\u003e\u003ccode\u003e86f7520\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1219\"\u003e#1219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/arrow-py/arrow/compare/1.3.0...1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asttokens` from 3.0.0 to 3.0.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/bdbf396fc0e006912ba82f1137dfd6b2d5aa9af2\"\u003e\u003ccode\u003ebdbf396\u003c/code\u003e\u003c/a\u003e Update mypy; add 3.14 to the CI; drop python 3.8 support (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/167\"\u003e#167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/f859c055e8453650e1987c5aefaaec36582d3a07\"\u003e\u003ccode\u003ef859c05\u003c/code\u003e\u003c/a\u003e Add tests for astroid v2, v3, and v4 to the CI (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/166\"\u003e#166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/84ef059ba28d08816d3d881e363b9ed42bbeae3a\"\u003e\u003ccode\u003e84ef059\u003c/code\u003e\u003c/a\u003e Adapt asttokens for astroid 4.x (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/165\"\u003e#165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9db9335648659520c7c8453bc39550fa4f95d539\"\u003e\u003ccode\u003e9db9335\u003c/code\u003e\u003c/a\u003e Various links improvements (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/163\"\u003e#163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3371ebf7f48f6a731d409fffd6ba235e6a95d85b\"\u003e\u003ccode\u003e3371ebf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/161\"\u003e#161\u003c/a\u003e from gristlabs/dependabot/pip/docs/requests-2.32.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3a60115d3efdb01efc8a6442b59fdd0071518e70\"\u003e\u003ccode\u003e3a60115\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.2 to 2.32.4 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/584b51c6c084455ad4597886657783d1b661ddfa\"\u003e\u003ccode\u003e584b51c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/160\"\u003e#160\u003c/a\u003e from gristlabs/dependabot/pip/docs/urllib3-2.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3e9d703323ce94987bf9e030bd010eae13fa15b4\"\u003e\u003ccode\u003e3e9d703\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.2.2 to 2.5.0 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/64d3f7c3637775fef832a9a9cdb78ec02da494e6\"\u003e\u003ccode\u003e64d3f7c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/158\"\u003e#158\u003c/a\u003e from gristlabs/dependabot/pip/docs/jinja2-3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9b5fb1abfb171cfb1f01c2d996cbd31e9d1f0660\"\u003e\u003ccode\u003e9b5fb1a\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.4 to 3.1.6 in /docs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gristlabs/asttokens/compare/v3.0.0...v3.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 25.3.0 to 25.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bleach` from 6.2.0 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mozilla/bleach/blob/main/CHANGES\"\u003ebleach's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.3.0 (October 27th, 2025)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix wbr handling. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/5546d5dbce60d08ccb99d981778d74044d646d4e\"\u003e\u003ccode\u003e5546d5d\u003c/code\u003e\u003c/a\u003e chore: prep for 6.3.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/88df3ff23fb2a43e174b3fdfe9191ef516de868a\"\u003e\u003ccode\u003e88df3ff\u003c/code\u003e\u003c/a\u003e chore: fix readthedocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d8b2fb45b2606515c58787c223d6605c6c70868f\"\u003e\u003ccode\u003ed8b2fb4\u003c/code\u003e\u003c/a\u003e fix: fix wbr handling (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/55e48cedb20bda23940ab34753a1fb378d5d30b9\"\u003e\u003ccode\u003e55e48ce\u003c/code\u003e\u003c/a\u003e chore: add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/a4d6cddac6e338c3d6f84c755a5fcb32e9e18fba\"\u003e\u003ccode\u003ea4d6cdd\u003c/code\u003e\u003c/a\u003e chore: drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/172d92faef543a83c6760c63c32749586cdd564b\"\u003e\u003ccode\u003e172d92f\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/df88612f2e9daf8f4ee23cf0e29b712d9d9147b6\"\u003e\u003ccode\u003edf88612\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/cbcf6b18d19aeb7777699f9385013d0a04052b68\"\u003e\u003ccode\u003ecbcf6b1\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.2.3 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d9aa7ef592d57dda56e26ba31d06e1b279c58eca\"\u003e\u003ccode\u003ed9aa7ef\u003c/code\u003e\u003c/a\u003e Switch from dependabot reviewers to CODEOWNERS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/06f0f76cc68112bda3fa101d1730d5ba914d54a1\"\u003e\u003ccode\u003e06f0f76\u003c/code\u003e\u003c/a\u003e Update setuptools, wheel, and twine for devs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mozilla/bleach/compare/v6.2.0...v6.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `blinker` from 1.8.2 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/blinker/releases\"\u003eblinker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.9.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.9.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.9.0/\"\u003ehttps://pypi.org/project/blinker/1.9.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/stable/#version-1-9-0\"\u003ehttps://blinker.readthedocs.io/en/stable/#version-1-9-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/blinker/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/blinker/milestone/1?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e, \u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/173\"\u003e#173\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-eco/blinker/blob/main/CHANGES.rst\"\u003eblinker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e175\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e,\n\u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. :pr:\u003ccode\u003e172\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down.\n:issue:\u003ccode\u003e173\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/669f3a027828d19786e708b511277fabcd6b9532\"\u003e\u003ccode\u003e669f3a0\u003c/code\u003e\u003c/a\u003e release version 1.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/cfe116fa7912d8dcb0deee4907aa63d1efaadf5b\"\u003e\u003ccode\u003ecfe116f\u003c/code\u003e\u003c/a\u003e try disabling attestions on test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/16e4bd70a19353d9d7cf47e4df7de54936296377\"\u003e\u003ccode\u003e16e4bd7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/174\"\u003e#174\u003c/a\u003e from projectgus/bugfix/weakref_disconnect_shutdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/42561fdf065032f5c39aea04d8c3fb4db93f73f3\"\u003e\u003ccode\u003e42561fd\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;Exception ignored\u0026quot; in weakref callback during interpreter shutdown.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/dcce3e97743494433025e0b68f742f3582b6ba6a\"\u003e\u003ccode\u003edcce3e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e from pallets-eco/drop-python3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/efa95eaa080b0d4a8dcfc46ad1f387ea1ddebd97\"\u003e\u003ccode\u003eefa95ea\u003c/code\u003e\u003c/a\u003e drop support for python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/82305185358d8ce21619ec0f324688a14a89c23b\"\u003e\u003ccode\u003e8230518\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/94f1202f08c6d00a9fe1ecf5c8cba9da84e4b22f\"\u003e\u003ccode\u003e94f1202\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/8c983ecd764e1d113d24522838c2a7312460b7eb\"\u003e\u003ccode\u003e8c983ec\u003c/code\u003e\u003c/a\u003e remove previously deprecated code (\u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/f5915f3bfcd9f9da0caf6cd4858bf68068c52963\"\u003e\u003ccode\u003ef5915f3\u003c/code\u003e\u003c/a\u003e set up pre-commit lite workflow\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/blinker/compare/1.8.2...1.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `build` from 1.2.2.post1 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\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/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.2.2.post1...1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachecontrol` from 0.14.3 to 0.14.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/cachecontrol/releases\"\u003ecachecontrol's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 3.28.16 to 3.28.17 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/382\"\u003epsf/cachecontrol#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 3.28.17 to 3.28.18 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/383\"\u003epsf/cachecontrol#383\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump astral-sh/setup-uv from 6.0.1 to 6.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/385\"\u003epsf/cachecontrol#385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(ci): cleanup, add Python 3.14 by \u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/392\"\u003epsf/cachecontrol#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix typo by \u003ca href=\"https://github.com/zackzack38\"\u003e\u003ccode\u003e@​zackzack38\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/388\"\u003epsf/cachecontrol#388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: prepare for 0.14.4 by \u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/394\"\u003epsf/cachecontrol#394\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/zackzack38\"\u003e\u003ccode\u003e@​zackzack38\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/388\"\u003epsf/cachecontrol#388\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/cachecontrol/compare/v0.14.3...v0.14.4\"\u003ehttps://github.com/psf/cachecontrol/compare/v0.14.3...v0.14.4\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/cachecontrol/blob/master/docs/release_notes.rst\"\u003ecachecontrol's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.14.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eExplicitly support Python 3.14.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/cachecontrol/commit/aba0315599d7d4200074ab3606384732be7bbc25\"\u003e\u003ccode\u003eaba0315\u003c/code\u003e\u003c/a\u003e chore: prepare for 0.14.4 (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/e8a968302db0bab1d8016b1da07440803eb230c6\"\u003e\u003ccode\u003ee8a9683\u003c/code\u003e\u003c/a\u003e fix typo (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/388\"\u003e#388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/02df424c36e1103c90131879949c12b8254b64dd\"\u003e\u003ccode\u003e02df424\u003c/code\u003e\u003c/a\u003e chore(ci): cleanup, add Python 3.14 (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/9af76f749721ef7ee27e692c5c62a19aedab7731\"\u003e\u003ccode\u003e9af76f7\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv in the actions group (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/3f169f69e3871340833535380306b43735b5b0a9\"\u003e\u003ccode\u003e3f169f6\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action in the actions group (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/3e0c8f2fbd85bc1d64ecaac7d6b0e838a8dae8f7\"\u003e\u003ccode\u003e3e0c8f2\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action in the actions group (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/psf/cachecontrol/compare/v0.14.3...v0.14.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.2.0 to 6.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.2 (2025-11-13)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor improvements from GitHub Copilot code review.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.1 (2025-10-12)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4ee2600ab09b109f79d4ef08103240bf9f239b2d\"\u003e\u003ccode\u003e4ee2600\u003c/code\u003e\u003c/a\u003e Release v6.2.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/f1cec391fea1a1e407fe596b6e37b849adf7fce5\"\u003e\u003ccode\u003ef1cec39\u003c/code\u003e\u003c/a\u003e Minor improvements from GitHub Copilot code review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/e9117dc1e18389341ce4836f171e23d89f306b65\"\u003e\u003ccode\u003ee9117dc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/371\"\u003e#371\u003c/a\u003e from RektPunk/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6774af212c0c95c2179f2644023fac74317d0262\"\u003e\u003ccode\u003e6774af2\u003c/code\u003e\u003c/a\u003e fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4d8fc20d9eac2cf93d0d938127f6dd3c30441c22\"\u003e\u003ccode\u003e4d8fc20\u003c/code\u003e\u003c/a\u003e docs: add cachetools-async to related projects in README (\u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/ca7508fd56103a1b6d6f17c8e93e36c60b44ca25\"\u003e\u003ccode\u003eca7508f\u003c/code\u003e\u003c/a\u003e Release v6.2.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/f7193077decbbeddbbb76677a1d8912a454886f2\"\u003e\u003ccode\u003ef719307\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/339\"\u003e#339\u003c/a\u003e: Improve documentation regarding funtion default arguments.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b32d00b7d4ca95ba67edfa3167c81938761ae09a\"\u003e\u003ccode\u003eb32d00b\u003c/code\u003e\u003c/a\u003e Fix typos.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a9a7e2cc8f2f6ab3403d5b967e3324cf237878c0\"\u003e\u003ccode\u003ea9a7e2c\u003c/code\u003e\u003c/a\u003e Move extended \u003ca href=\"https://github.com/ttl\"\u003e\u003ccode\u003e@​ttl\u003c/code\u003e\u003c/a\u003e_cache docs to proper place.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/072b7e1724b5f608e611ba6d40162722012c9149\"\u003e\u003ccode\u003e072b7e1\u003c/code\u003e\u003c/a\u003e docs: clarify what units the \u003ccode\u003ettl\u003c/code\u003e argument uses (i.e., seconds)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.2.0...v6.2.2\"\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.0 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.4.0...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cli-helpers` from 2.3.1 to 2.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dbcli/cli_helpers/blob/main/CHANGELOG\"\u003ecli-helpers's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.7.0\u003c/h2\u003e\n\u003cp\u003e(released on 2025-07-28)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emysql\u003c/code\u003e and \u003ccode\u003emysql_unicode\u003c/code\u003e output formats which right-align numbers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.6.0\u003c/h2\u003e\n\u003cp\u003e(released on 2025-07-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegister the JSON formats so they are actually usable.\u003c/li\u003e\n\u003cli\u003eMake JSON formats able to encode Decimals and None/NULLs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.5.0\u003c/h2\u003e\n\u003cp\u003e(released on 2025-07-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded noheader CSV and TSV output formats.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003ejsonl\u003c/code\u003e and \u003ccode\u003ejsonl_escaped\u003c/code\u003e output formats.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.4.0\u003c/h2\u003e\n\u003cp\u003e(released on 2025-03-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded format_timestamps preprocessor for per-column date/time formatting.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/c34ae9fc68c4c8a74124c2cd416fc06148d71445\"\u003e\u003ccode\u003ec34ae9f\u003c/code\u003e\u003c/a\u003e Releasing version 2.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/c0d127c362583fe96ca1a49a6365187f9a03cffb\"\u003e\u003ccode\u003ec0d127c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dbcli/cli_helpers/issues/96\"\u003e#96\u003c/a\u003e from dbcli/RW/add-mysql-output-formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/6f804e9636499f2c37154192e8d60c47670403cc\"\u003e\u003ccode\u003e6f804e9\u003c/code\u003e\u003c/a\u003e add mysql/mysql_unicode output formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/22881bb13b98f0fdf85faf61af3c5c92a2184044\"\u003e\u003ccode\u003e22881bb\u003c/code\u003e\u003c/a\u003e Releasing version 2.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/090a529385052852115f7274ce3a0915820610e4\"\u003e\u003ccode\u003e090a529\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dbcli/cli_helpers/issues/95\"\u003e#95\u003c/a\u003e from dbcli/RW/changelog-v2-6-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/a94997008b955647a4d0c5951b5d19b9105efc36\"\u003e\u003ccode\u003ea949970\u003c/code\u003e\u003c/a\u003e update changelog for release v2.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/789daf491d2945f23e2359f6a3ae93067cf31e7b\"\u003e\u003ccode\u003e789daf4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dbcli/cli_helpers/issues/94\"\u003e#94\u003c/a\u003e from dbcli/RW/json-format-followups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/49bfdb922915a9906ca6af23e1cab9216b055253\"\u003e\u003ccode\u003e49bfdb9\u003c/code\u003e\u003c/a\u003e followups for JSON output formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/0edf14eabfaaf556d75560ae2bfd674ed2276ba9\"\u003e\u003ccode\u003e0edf14e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dbcli/cli_helpers/issues/93\"\u003e#93\u003c/a\u003e from dbcli/RW/prepare-v2-5-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/24fb5fc2bdc561301c34e3e7e572a51352741ba2\"\u003e\u003ccode\u003e24fb5fc\u003c/code\u003e\u003c/a\u003e bump version for v2.5.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dbcli/cli_helpers/compare/v2.3.1...v2.7.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.7 to 8.3.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.3.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.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.3.1/\"\u003ehttps://pypi.org/project/click/8.3.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/28\"\u003ehttps://github.com/pallets/click/milestone/28\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3039\"\u003e#3039\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3055\"\u003e#3055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through the \u003ccode\u003eContext.invoke()\u003c/code\u003e method. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3066\"\u003e#3066\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3068\"\u003e#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect behavior for multiple parameters using the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3071\"\u003e#3071\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3079\"\u003e#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is empty. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3019\"\u003e#3019\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3021\"\u003e#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to \u003ccode\u003etype_cast_value\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3069\"\u003e#3069\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3090\"\u003e#3090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters through the context inside parameter callbacks. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.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.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-11-15\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. :issue:\u003ccode\u003e3039\u003c/code\u003e\n:pr:\u003ccode\u003e3055\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through\nthe \u003ccode\u003eContext.invoke()\u003c/code\u003e method. :issue:\u003ccode\u003e3066\u003c/code\u003e :issue:\u003ccode\u003e3065\u003c/code\u003e :pr:\u003ccode\u003e3068\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect\nbehavior for multiple parameters using the same name. :issue:\u003ccode\u003e3071\u003c/code\u003e :pr:\u003ccode\u003e3079\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters\nthrough the context inside parameter callbacks. :issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3137\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is\nempty. :issue:\u003ccode\u003e3019\u003c/code\u003e :pr:\u003ccode\u003e3021\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to\n\u003ccode\u003etype_cast_value\u003c/code\u003e. :issue:\u003ccode\u003e3069\u003c/code\u003e :pr:\u003ccode\u003e3090\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in \u003ccode\u003eCliRunner\u003c/code\u003e. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/1d038f270701498433cb432f54db89f95f07a845\"\u003e\u003ccode\u003e1d038f2\u003c/code\u003e\u003c/a\u003e release version 8.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/03f3889f505d0c9ca4f9d6810f9e4ba2799f2a66\"\u003e\u003ccode\u003e03f3889\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3141\"\u003e#3141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3867781222cb63693ca67df94352d29d8e6e2770\"\u003e\u003ccode\u003e3867781\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b91bb9548a5617b1197add95e084d569f57149c3\"\u003e\u003ccode\u003eb91bb95\u003c/code\u003e\u003c/a\u003e Provide altered context to callbacks to hide \u003ccode\u003eUNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/437e1e3295c7ec979fc1bf285bb402ca20d847e7\"\u003e\u003ccode\u003e437e1e3\u003c/code\u003e\u003c/a\u003e Temporarily provide a fake context to the callback to hide \u003ccode\u003eUNSET\u003c/code\u003e values as ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ea70da487b05d6bb758d472a3a9ffab4a5b7fcd5\"\u003e\u003ccode\u003eea70da4\u003c/code\u003e\u003c/a\u003e Don't test using a file in docs/ (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e27b307462b725722f620c69dd1d5509c032d18a\"\u003e\u003ccode\u003ee27b307\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003euv run --all-extras pyright --verifytypes click\u003c/code\u003e pass (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a92c573f3195c9da3058eadf1735d38af186d22c\"\u003e\u003ccode\u003ea92c573\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bd131e1ab63da2281d6dd9b8205ad2eb5...\n\n_Description has been truncated_","html_url":"https://github.com/magic-ai-trading-bot/bot-core/pull/76","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/magic-ai-trading-bot%2Fbot-core/issues/76","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/76/packages"}},{"old_version":"1.2.2","new_version":"1.3.1","update_type":"minor","path":null,"pr_created_at":"2025-11-10T06:48:32.000Z","version_change":"1.2.2 → 1.3.1","issue":{"uuid":"3606400562","node_id":"PR_kwDOQDraYs6ycup4","number":4,"state":"open","title":"deps: bump the prod-deps group across 1 directory with 28 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":"2025-11-10T06:48:32.000Z","updated_at":"2025-11-10T06:48:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":28,"packages":[{"name":"django","old_version":"4.2.24","new_version":"5.2.8","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmltodict","old_version":"0.15.1","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"boto3","old_version":"1.40.27","new_version":"1.40.69","repository_url":"https://github.com/boto/boto3"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.11.3","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"37.12.0","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.0","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.1","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.3","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.15","new_version":"6.147.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 28 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.24` | `5.2.8` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.15.1` | `1.0.2` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.27` | `1.40.69` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.11.3` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `37.12.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.4.0` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `8.2.3` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.1` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.3` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.15` | `6.147.0` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.24 to 5.2.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47fe39af56ecd0ad73b9c7562511015e96b91b80\"\u003e\u003ccode\u003e47fe39a\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.8 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac9fcf6eb2c909f4150c5287808f49170ce1f9e2\"\u003e\u003ccode\u003eac9fcf6\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-64459 -- Avoided propagating invalid arguments to Q on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6703f364d767e949c5b0e4016433ef75063b4f9b\"\u003e\u003ccode\u003e6703f36\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64459 -- Prevented SQL injections in Q/QuerySet via th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f5d904b63751dea9ffc3b0e046404a7fa5881ac\"\u003e\u003ccode\u003e4f5d904\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedire...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/cbdf128cb316bccf9ca3b3b4966e57bd050bfc8a\"\u003e\u003ccode\u003ecbdf128\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36704\"\u003e#36704\u003c/a\u003e -- Fixed system check error for proxy model with a compo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6775888470317a6d69121779b489bb2dc7350318\"\u003e\u003ccode\u003e6775888\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36696\"\u003e#36696\u003c/a\u003e -- Fixed NameError when inspecting functions with deferr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d5dfffaae52b9dcb4857d42b1e2902290a5c5e3c\"\u003e\u003ccode\u003ed5dfffa\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.8, 5.1.14, and 4.2.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/368f955c371cab5db18e9e239d10560cf15f5ea4\"\u003e\u003ccode\u003e368f955\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36681\"\u003e#36681\u003c/a\u003e -- Removed English pluralization bias from example in do...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/71267c97db211f1d7f1b8b794ceb2167a7619a4d\"\u003e\u003ccode\u003e71267c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35095\"\u003e#35095\u003c/a\u003e -- Clarified Swiss number formatting in docs/topics/i18n...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9b37bd5fe73b0d614ad8e503071d6f7bf2bdf6b2\"\u003e\u003ccode\u003e9b37bd5\u003c/code\u003e\u003c/a\u003e [5.2.x] Made RemoteTestResultTest.test_pickle_errors_detection() compatible w...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.24...5.2.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on 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/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.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 `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.5 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.8 - September 14 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003emypy\u003c/code\u003e implicit export error caused by the \u003ccode\u003eWorkbook()\u003c/code\u003e type\nannotations changes in v3.2.7 and v3.2.6.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1154\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.7 - September 13 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed typing issue in \u003ccode\u003eWorkbook()\u003c/code\u003e constructor.\u003c/p\u003e\n\u003cp\u003e:issue:\u003ccode\u003e1152\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.2.6 - September 12 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded an option to position custom data labels in the same way that the data\nlabels can be positioned for the entire series.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1147\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd border, fill, gradient and pattern formatting options for\nchart titles and also chart axis titles.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e957\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd additional type annotations. This is an ongoing refactoring.\u003c/p\u003e\n\u003cp\u003e:feature:\u003ccode\u003e1123\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/eb99afecdd0050209835f9f237d580dc53e42afa\"\u003e\u003ccode\u003eeb99afe\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/5ec29826d5e398bb5adebaabafbeb9d443a6ed8c\"\u003e\u003ccode\u003e5ec2982\u003c/code\u003e\u003c/a\u003e workbook: add explicit export for mypy compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/ca85cbb03a5898c9e7b66c78ac67a365e7f53002\"\u003e\u003ccode\u003eca85cbb\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/3710251aaaa9524ee302ec04608bfc1b577d4ba5\"\u003e\u003ccode\u003e3710251\u003c/code\u003e\u003c/a\u003e typing: add more supported types to Workbook() constructor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/27db7a14672bfe1a18f29dfbab646aa0149a369b\"\u003e\u003ccode\u003e27db7a1\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/f05067654b42283557c3621e411b6fbadb7051b6\"\u003e\u003ccode\u003ef050676\u003c/code\u003e\u003c/a\u003e docs: add CI spell check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/60f708cc1e10c0c66ae870be4f350f45a9d3ecc8\"\u003e\u003ccode\u003e60f708c\u003c/code\u003e\u003c/a\u003e chart: add axis title formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/53dc08e5d240310c88bbfce8d1a42330ae256535\"\u003e\u003ccode\u003e53dc08e\u003c/code\u003e\u003c/a\u003e chart: add chart title formatting options\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.5...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmltodict` from 0.15.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/martinblech/xmltodict/releases\"\u003exmltodict's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\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/martinblech/xmltodict/blob/master/CHANGELOG.md\"\u003exmltodict's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.1...v1.0.2\"\u003e1.0.2\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow DOCTYPE with disable_entities=True (default) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e25b61a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v1.0.0...v1.0.1\"\u003e1.0.1\u003c/a\u003e (2025-09-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efail closed when entities disabled (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003ec986d2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003evalidate XML comments (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e3d4d2d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd SECURITY.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/64130233c8fea272a5f82f2f585e1593523ec1b1\"\u003e6413023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify behavior for empty lists (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e2025b5c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify process_comments docs (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e6b464fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclarify strip whitespace comment behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b3e22032d21cc387d6cecf3930116e8fdc3151cf\"\u003eb3e2203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ecreate AGENTS.md for coding agents (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/0da66ee797ced7479312aecef92c6a25e235007c\"\u003e0da66ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace travis with actions badge (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2576b94c918fbd154489a95dbbb3feda8bd3cbd8\"\u003e2576b94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate CONTRIBUTING.md (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/db3918057cf125af989a1263d52df8df5ef8c642\"\u003edb39180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.0\"\u003e1.0.0\u003c/a\u003e (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emodernize for Python 3.9+; drop legacy compat paths\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add limited XML comment round-trip; unify \u003ccode\u003e_emit\u003c/code\u003e behavior (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/e43537eee61c20ef50f0e4242eb9223de7a6aefd\"\u003ee43537e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e add selective \u003ccode\u003eforce_cdata\u003c/code\u003e support (bool/tuple/callable) (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a497fedb7d6103d68af155543ac3337a73778b19\"\u003ea497fed\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/375\"\u003e#375\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003enamespaces:\u003c/strong\u003e attach \u003ccode\u003e[@xmlns](https://github.com/xmlns)\u003c/code\u003e to declaring element when process_namespaces=True (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/f0322e578184421693434902547f330f4f0a44c3\"\u003ef0322e5\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/163\"\u003e#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e avoid parent accumulation at item_depth; add regression tests (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/220240c5eb2d12b75adf26cc84ec9c803ce8bb2b\"\u003e220240c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e handle non-string \u003ccode\u003e#text\u003c/code\u003e with attributes; unify value conversion (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/927a025ae8a62cbb542d5caff38b29161a2096fa\"\u003e927a025\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/martinblech/xmltodict/issues/366\"\u003e#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eunparse:\u003c/strong\u003e skip empty lists to keep pretty/compact outputs consistent (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/ab4c86fed24dc8ef0e932a524edfb01c6453ecf6\"\u003eab4c86f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove initial Release Drafter config (\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c0b74ed58f933bffd160c60a58620f672710ff7c\"\u003ec0b74ed\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/martinblech/xmltodict/commit/d079849136b031c471ec96a168ad7859ed5994ff\"\u003e\u003ccode\u003ed079849\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/25b61a41f580cfc211df07c5fbbf603bd8eb5a5f\"\u003e\u003ccode\u003e25b61a4\u003c/code\u003e\u003c/a\u003e fix: allow DOCTYPE with disable_entities=True (default)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/a2a9ab7e0692a62f64d97ff12553d0d53368c854\"\u003e\u003ccode\u003ea2a9ab7\u003c/code\u003e\u003c/a\u003e ci(publish): allow uploading release assets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/656e6af9543e640fda7e96d6bdd6e693756687be\"\u003e\u003ccode\u003e656e6af\u003c/code\u003e\u003c/a\u003e chore(master): release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/c986d2d37a93d45fcc059b09063d9d9c45a655ec\"\u003e\u003ccode\u003ec986d2d\u003c/code\u003e\u003c/a\u003e fix: fail closed when entities disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/3d4d2d3a4cd0f68d1211dba549010261fa87b969\"\u003e\u003ccode\u003e3d4d2d3\u003c/code\u003e\u003c/a\u003e fix: validate XML comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/b4a5f2a3f04aff68384486e957632c8438396fd6\"\u003e\u003ccode\u003eb4a5f2a\u003c/code\u003e\u003c/a\u003e refactor: remove jython-specific parsing branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/6b464fce284a93dbb292f3d063c9f310a478a014\"\u003e\u003ccode\u003e6b464fc\u003c/code\u003e\u003c/a\u003e docs: clarify process_comments docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/34daa304d443e49113d195294d99c6f58ce4714c\"\u003e\u003ccode\u003e34daa30\u003c/code\u003e\u003c/a\u003e refactor: remove unused helper functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/martinblech/xmltodict/commit/2025b5cb5e64fc9c4d54b8644187a0a193bdd0ed\"\u003e\u003ccode\u003e2025b5c\u003c/code\u003e\u003c/a\u003e docs: clarify behavior for empty lists\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/martinblech/xmltodict/compare/v0.15.1...v1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shapely` from 2.0.7 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\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/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (unreleased)\u003c/h2\u003e\n\u003cp\u003eImproved performance of the Geometry -\u0026gt; float scalar operations: \u003ccode\u003earea\u003c/code\u003e, \u003ccode\u003elength\u003c/code\u003e,\n\u003ccode\u003eminimum_clearance\u003c/code\u003e, \u003ccode\u003ex\u003c/code\u003e, \u003ccode\u003ey\u003c/code\u003e, \u003ccode\u003ez\u003c/code\u003e and \u003ccode\u003em\u003c/code\u003e. Benchmarks showed a change of call duration\nfrom 2.6 microseconds to 0.2 microseconds (on the \u003ccode\u003ePoint.x\u003c/code\u003e attribute).\u003c/p\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-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/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densify test for latest GEOS main (densify\u0026gt;0.001...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shapely/shapely/compare/2.0.7...2.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-two-factor-auth[phonenumbers]` from 1.17.0 to 1.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/releases\"\u003edjango-two-factor-auth[phonenumbers]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect o...\n\n_Description has been truncated_","html_url":"https://github.com/chrislkl/seed/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrislkl%2Fseed/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"}},{"old_version":"1.2.2","new_version":"1.3.1","update_type":"minor","path":null,"pr_created_at":"2025-11-10T05:53:13.000Z","version_change":"1.2.2 → 1.3.1","issue":{"uuid":"3606242355","node_id":"PR_kwDOAYRY2s6ycM26","number":5136,"state":"closed","title":"deps: bump the prod-deps group across 1 directory with 27 updates","user":"dependabot[bot]","labels":["Maintenance"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-11-21T15:59:00.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-10T05:53:13.000Z","updated_at":"2025-11-21T15:59:02.000Z","time_to_close":986747,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps: bump","group_name":"prod-deps","update_count":27,"packages":[{"name":"django","old_version":"4.2.26","new_version":"5.2.8","repository_url":"https://github.com/django/django"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"hiredis","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"drf-yasg","old_version":"1.21.10","new_version":"1.21.11","repository_url":"https://github.com/axnsan12/drf-yasg"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"xlsxwriter","old_version":"3.2.8","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"xmlschema","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/sissaschool/xmlschema"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.1"},{"name":"boto3","old_version":"1.40.30","new_version":"1.40.69","repository_url":"https://github.com/boto/boto3"},{"name":"uwsgi","old_version":"2.0.30","new_version":"2.0.31"},{"name":"coverage","old_version":"7.10.6","new_version":"7.11.3","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"coveralls","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/TheKevJames/coveralls-python"},{"name":"tox","old_version":"4.30.2","new_version":"4.32.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"faker","old_version":"37.6.0","new_version":"37.12.0","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.0","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"sphinx","old_version":"7.4.7","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinxcontrib-spelling","old_version":"8.0.0","new_version":"8.0.1","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.3","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"hypothesis","old_version":"6.138.16","new_version":"6.147.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"django-debug-toolbar","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the prod-deps group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `4.2.26` | `5.2.8` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.2.1` | `3.3.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [drf-yasg](https://github.com/axnsan12/drf-yasg) | `1.21.10` | `1.21.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.8` | `3.2.9` |\n| [xmlschema](https://github.com/sissaschool/xmlschema) | `4.1.0` | `4.2.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [django-two-factor-auth[phonenumbers]](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.30` | `1.40.69` |\n| [uwsgi](https://uwsgi-docs.readthedocs.io/en/latest/) | `2.0.30` | `2.0.31` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.11.3` |\n| [coveralls](https://github.com/TheKevJames/coveralls-python) | `4.0.1` | `4.0.2` |\n| [tox](https://github.com/tox-dev/tox) | `4.30.2` | `4.32.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [faker](https://github.com/joke2k/faker) | `37.6.0` | `37.12.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.4.0` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.4.7` | `8.2.3` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.0` | `8.0.1` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.3` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.138.16` | `6.147.0` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `6.0.0` | `6.1.0` |\n\n\nUpdates `django` from 4.2.26 to 5.2.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47fe39af56ecd0ad73b9c7562511015e96b91b80\"\u003e\u003ccode\u003e47fe39a\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.8 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ac9fcf6eb2c909f4150c5287808f49170ce1f9e2\"\u003e\u003ccode\u003eac9fcf6\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-64459 -- Avoided propagating invalid arguments to Q on ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6703f364d767e949c5b0e4016433ef75063b4f9b\"\u003e\u003ccode\u003e6703f36\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64459 -- Prevented SQL injections in Q/QuerySet via th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4f5d904b63751dea9ffc3b0e046404a7fa5881ac\"\u003e\u003ccode\u003e4f5d904\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedire...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/cbdf128cb316bccf9ca3b3b4966e57bd050bfc8a\"\u003e\u003ccode\u003ecbdf128\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36704\"\u003e#36704\u003c/a\u003e -- Fixed system check error for proxy model with a compo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6775888470317a6d69121779b489bb2dc7350318\"\u003e\u003ccode\u003e6775888\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36696\"\u003e#36696\u003c/a\u003e -- Fixed NameError when inspecting functions with deferr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d5dfffaae52b9dcb4857d42b1e2902290a5c5e3c\"\u003e\u003ccode\u003ed5dfffa\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.8, 5.1.14, and 4.2.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/368f955c371cab5db18e9e239d10560cf15f5ea4\"\u003e\u003ccode\u003e368f955\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36681\"\u003e#36681\u003c/a\u003e -- Removed English pluralization bias from example in do...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/71267c97db211f1d7f1b8b794ceb2167a7619a4d\"\u003e\u003ccode\u003e71267c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35095\"\u003e#35095\u003c/a\u003e -- Clarified Swiss number formatting in docs/topics/i18n...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9b37bd5fe73b0d614ad8e503071d6f7bf2bdf6b2\"\u003e\u003ccode\u003e9b37bd5\u003c/code\u003e\u003c/a\u003e [5.2.x] Made RemoteTestResultTest.test_pickle_errors_detection() compatible w...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/4.2.26...5.2.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on 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/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3efcf03\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/966cede2c0ca0a8ac4fe0786571e5c230f39c36e\"\u003e\u003ccode\u003e966cede\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/78def309e58126fdaacb66e6fd40df9c46494062\"\u003e\u003ccode\u003e78def30\u003c/code\u003e\u003c/a\u003e Bump version to 3.3.0-dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `brotli` from 1.1.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/brotli/releases\"\u003ebrotli's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed (compared to RC1)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epick changes from Debian patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1349\"\u003egoogle/brotli#1349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick changes from Alpine patch by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1348\"\u003egoogle/brotli#1348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epick VCPKG patches by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1350\"\u003egoogle/brotli#1350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix copy-paste in Java decoder by \u003ca href=\"https://github.com/copybara-service\"\u003e\u003ccode\u003e@​copybara-service\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/google/brotli/pull/1357\"\u003egoogle/brotli#1357\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0 RC1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIMPORTANT\u003c/strong\u003e: though this is a pre-release for v1.2.0, it is expected that some changes will be added before release; most notably concerning build files: patches applied by Alpine, Debian, Conan, VCPKG will be partially/fully integrated.\u003c/p\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/google/brotli/blob/master/CHANGELOG.md\"\u003ebrotli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-27\u003c/h2\u003e\n\u003ch3\u003eSECURITY\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epython: added \u003ccode\u003eDecompressor::can_accept_more_data\u003c/code\u003e method and optional\n\u003ccode\u003eoutput_buffer_limit\u003c/code\u003e argument \u003ccode\u003eDecompressor::process\u003c/code\u003e;\nthat allows mitigation of unexpectedly large output;\nreported by Charles Chan (\u003ca href=\"https://github.com/charleswhchan\"\u003ehttps://github.com/charleswhchan\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edecoder / encoder: added static initialization to reduce binary size\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003epython: allow limiting decoder output (see SECURITY section)\u003c/li\u003e\n\u003cli\u003eCLI: \u003ccode\u003ebrcat\u003c/code\u003e alias; allow decoding concatenated brotli streams\u003c/li\u003e\n\u003cli\u003ekt: pure Kotlin decoder\u003c/li\u003e\n\u003cli\u003ecgo: support \u0026quot;raw\u0026quot; dictionaries\u003c/li\u003e\n\u003cli\u003ebuild: Bazel modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: dropped \u003ccode\u003efinalize()\u003c/code\u003e for native entities\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ejava: in \u003ccode\u003ecompress\u003c/code\u003e pass correct length to native encoder\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: install man pages\u003c/li\u003e\n\u003cli\u003ebuild: updated / fixed / refined Bazel buildfiles\u003c/li\u003e\n\u003cli\u003eencoder: faster encoding\u003c/li\u003e\n\u003cli\u003ecgo: link via pkg-config\u003c/li\u003e\n\u003cli\u003epython: modernize extension / allow multi-phase module initialization\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edecoder / encoder: static tables use \u0026quot;small\u0026quot; model (allows 2GiB+ binaries)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/028fb5a23661f123017c060daa546b55cf4bde29\"\u003e\u003ccode\u003e028fb5a\u003c/code\u003e\u003c/a\u003e release v1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/390de5b472ec8c40a7b8e5029e47fd6493f7a755\"\u003e\u003ccode\u003e390de5b\u003c/code\u003e\u003c/a\u003e build and test csharp decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/3499acbb7ac7818c1b929a8c9c5c5f8a634751da\"\u003e\u003ccode\u003e3499acb\u003c/code\u003e\u003c/a\u003e regenerate go/kt/js/ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/8ca2312c61f1f5853be0708f9b1d6a6ad002d2a4\"\u003e\u003ccode\u003e8ca2312\u003c/code\u003e\u003c/a\u003e fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/ee771daf20bab6533cbc629407c50cff1c87d9f1\"\u003e\u003ccode\u003eee771da\u003c/code\u003e\u003c/a\u003e fix copy-paste in Java decoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/42aee3289154cb3e8db1c7a8ebfa639c857578b9\"\u003e\u003ccode\u003e42aee32\u003c/code\u003e\u003c/a\u003e try to fix release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/392c06bac05cc1d098ab105cbbda766f19853d92\"\u003e\u003ccode\u003e392c06b\u003c/code\u003e\u003c/a\u003e redesign release resource uploading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/1964cdb1b9e16a2a0c27fbd3b2a3bccb2c1a8294\"\u003e\u003ccode\u003e1964cdb\u003c/code\u003e\u003c/a\u003e ramp up all GH actions plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/61605b1cb34ba84ae71c13b383d850a59cac85b2\"\u003e\u003ccode\u003e61605b1\u003c/code\u003e\u003c/a\u003e pick VCPKG patches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/brotli/commit/4b0f27b6f985b4301ad5cec4a31b9792ecf252bc\"\u003e\u003ccode\u003e4b0f27b\u003c/code\u003e\u003c/a\u003e pick changes from Alpine patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/brotli/compare/go/cbrotli/v1.1.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 `drf-yasg` from 1.21.10 to 1.21.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/axnsan12/drf-yasg/releases\"\u003edrf-yasg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.11\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/917\"\u003e#917\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/926\"\u003e#926\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/923\"\u003e#923\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/848\"\u003e#848\u003c/a\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/903\"\u003e#903\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/axnsan12/drf-yasg/blob/master/docs/changelog.rst\"\u003edrf-yasg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#########\nChangelog\n#########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.11\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (:pr:\u003ccode\u003e917\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (:pr:\u003ccode\u003e916\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix filter parameters not appearing in swagger with django-filter\u0026gt;=25 (:pr:\u003ccode\u003e926\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update Python, Django, and DRF versions and packaging configuration (:pr:\u003ccode\u003e922\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Remove usage of pkg_resources (:pr:\u003ccode\u003e928\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix call_view_method warning to include the method name again (:pr:\u003ccode\u003e923\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add a hide download button option (:pr:\u003ccode\u003e848\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Add ruff linters (:pr:\u003ccode\u003e903\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.10\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix type hints when using postponed evaluation of annotations (PEP-563) (:pr:\u003ccode\u003e840\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update JSON \u0026amp; YAML renderers to not use a \u0026quot;.\u0026quot; in their format string (:pr:\u003ccode\u003e911\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix lint errors when comparing types with == instead of is (:pr:\u003ccode\u003e868\u003c/code\u003e)\n\u003cstrong\u003eIMPROVED:\u003c/strong\u003e Update swagger-ui-dist to address CVE-2021-46708 (:pr:\u003ccode\u003e904\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.9\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added support for zoneinfo object fields (:pr:\u003ccode\u003e908\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.8\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Python 3.11 and 3.12 support (:pr:\u003ccode\u003e891\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fix pkg_resources version lookups for Python 3.9+ (:pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003e1.21.7\u003c/strong\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cem\u003eRelease date: Jul 20, 2023\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003edrf_yasg.inspectors.query.DrfAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Added \u003ccode\u003eDrfAPICompatInspector\u003c/code\u003e to serve as a replacement \u003ccode\u003eCoreAPICompatInspector\u003c/code\u003e (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eADDED:\u003c/strong\u003e Allow \u003ccode\u003eDEFAULT_SPEC_RENDERERS\u003c/code\u003e default renderers to be overriden in the settings (:pr:\u003ccode\u003e857\u003c/code\u003e)\n\u003cstrong\u003eFIXED:\u003c/strong\u003e Fixed redoc source mapping (:pr:\u003ccode\u003e859\u003c/code\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/f8cb2db70ca42fb709565f89fdd152b614dc865d\"\u003e\u003ccode\u003ef8cb2db\u003c/code\u003e\u003c/a\u003e Add version 1.21.11 details to the changelog (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/0c6d08d5ebc52e802e5e1acbabbadfe179d4087d\"\u003e\u003ccode\u003e0c6d08d\u003c/code\u003e\u003c/a\u003e Update the ruff lint rules (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/055a74dc10128fd55a48f7f74f6b58ffcc48e83d\"\u003e\u003ccode\u003e055a74d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a8813ace8e39cc2c28a916053c74415e10db1425\"\u003e\u003ccode\u003ea8813ac\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/9f4b44943ad930e23e979b80090102dfca1d588b\"\u003e\u003ccode\u003e9f4b449\u003c/code\u003e\u003c/a\u003e Restore the live demo and replace heroku with apprunner (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/298325122e11aeba87e6c8f16604e45d870649e7\"\u003e\u003ccode\u003e2983251\u003c/code\u003e\u003c/a\u003e fix list views with parameters in last path segment not named \u0026quot;list\u0026quot; views (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/a74689370c393432debbe6285b3afb3e462aee58\"\u003e\u003ccode\u003ea746893\u003c/code\u003e\u003c/a\u003e allow overriding produces/consumes with \u003ca href=\"https://github.com/swagger\"\u003e\u003ccode\u003e@​swagger\u003c/code\u003e\u003c/a\u003e_auto_schema decorator (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/e747ad6db413c2d20c3eab79739e22ffde5930c7\"\u003e\u003ccode\u003ee747ad6\u003c/code\u003e\u003c/a\u003e Fixes issue with filter parameters not appearing in Swagger after upgrading t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/ee3c871501dad5f0585c8c62ac0659fedab999a1\"\u003e\u003ccode\u003eee3c871\u003c/code\u003e\u003c/a\u003e update Python, Django, and DRF versions \u0026amp; packaging configuration (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/axnsan12/drf-yasg/commit/be6eeedcbebcb45151a9d18018d880d1fcdcf143\"\u003e\u003ccode\u003ebe6eeed\u003c/code\u003e\u003c/a\u003e Remove usage of pkg_resources (\u003ca href=\"https://redirect.github.com/axnsan12/drf-yasg/issues/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/axnsan12/drf-yasg/compare/1.21.10...1.21.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xlsxwriter` from 3.2.8 to 3.2.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/blob/main/Changes\"\u003exlsxwriter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.2.9 - September 16 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the \u003ccode\u003epy.typed\u003c/code\u003e file since it was causing a lot of downstream CI\nfailures where consumers weren't handling the xlsxwriter types correctly or\ntaking them into account.\u003c/p\u003e\n\u003cp\u003eThe file will be re-added once the xlsxwriter typing is more comprehensive.\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/jmcnamara/XlsxWriter/commit/e943bee8c9cdf0661cfdb83d5497e0725390e41e\"\u003e\u003ccode\u003ee943bee\u003c/code\u003e\u003c/a\u003e Prep for release 3.2.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmcnamara/XlsxWriter/commit/392bd9e6572785394c6553e2d4f7ae2bb80782f4\"\u003e\u003ccode\u003e392bd9e\u003c/code\u003e\u003c/a\u003e typing: remove py.typed file\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/compare/RELEASE_3.2.8...RELEASE_3.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xmlschema` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sissaschool/xmlschema/releases\"\u003exmlschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.0 (2025-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/blob/master/CHANGELOG.rst\"\u003exmlschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ccode\u003ev4.2.0\u003c/code\u003e_ (2025-10-14)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd arguments validation for schemas and validation methods (by validation contexts)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSchemaSettings\u003c/code\u003e dataclass for storing read-only settings for schema instances\nand for managing package default settings\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eblock\u003c/em\u003e argument to \u003ccode\u003eXMLResource\u003c/code\u003e class (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_SCHEMA_SOURCES\u003c/em\u003e package limit (\u003ccode\u003e1000\u003c/code\u003e, applied to \u003ccode\u003eXsdGlobals\u003c/code\u003e global maps instances)\u003c/li\u003e\n\u003cli\u003eAdd \u003cem\u003eMAX_XML_ELEMENTS\u003c/em\u003e package limit (\u003ccode\u003e1,000,000\u003c/code\u003e, applied to non-lazy \u003ccode\u003eXMLResource\u003c/code\u003e instances)\u003c/li\u003e\n\u003cli\u003eReduce \u003cem\u003eMAX_XML_DEPTH\u003c/em\u003e limit to 1000 and apply it to all \u003ccode\u003eXMLResource\u003c/code\u003e instances\u003c/li\u003e\n\u003cli\u003eFix for substitute match in case of unexpected child (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\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/sissaschool/xmlschema/commit/2783030fcdcd5307563822906862a9e7088931b2\"\u003e\u003ccode\u003e2783030\u003c/code\u003e\u003c/a\u003e Bump minor release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/7c77a12f0fe16c8da0256a0f13281a03e4a0f717\"\u003e\u003ccode\u003e7c77a12\u003c/code\u003e\u003c/a\u003e Include publiccode.yml validation workflow for CI and README changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/04c19d54d4578f34a0c04d6cc82daa8d3ef9d90c\"\u003e\u003ccode\u003e04c19d5\u003c/code\u003e\u003c/a\u003e Fix XsdGroup.match_element (issue \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/dd4f279e56b8a5ce89f78a6c88337f5032af0b2f\"\u003e\u003ccode\u003edd4f279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sissaschool/xmlschema/issues/463\"\u003e#463\u003c/a\u003e from publiccode-pr-bot/chore/add-publiccode-parser-ac...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/1bd7aa6eebf4947e7ae76e47a2f706b58fed22cd\"\u003e\u003ccode\u003e1bd7aa6\u003c/code\u003e\u003c/a\u003e Update GitHub workflow for CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/76b0f67e900777166bcd3773cc109efae933682d\"\u003e\u003ccode\u003e76b0f67\u003c/code\u003e\u003c/a\u003e Patch mypy tests with protocols\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/28727bb0af89f129d59772550c6998164c37aeff\"\u003e\u003ccode\u003e28727bb\u003c/code\u003e\u003c/a\u003e Update docs and release info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/e4131eaf6bc1a223292f3f19e78573a4317d131a\"\u003e\u003ccode\u003ee4131ea\u003c/code\u003e\u003c/a\u003e Add from_settings() class method to schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/0aea8debef13b62156e7297bdc54198057ea3611\"\u003e\u003ccode\u003e0aea8de\u003c/code\u003e\u003c/a\u003e Rewrite validation contexts as normal classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sissaschool/xmlschema/commit/d443d7ba0e3de8fad6d6df8f314b12735af4bac3\"\u003e\u003ccode\u003ed443d7b\u003c/code\u003e\u003c/a\u003e Full validation of context arguments\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sissaschool/xmlschema/compare/v4.1.0...v4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lark` from 1.2.2 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lark-parser/lark/releases\"\u003elark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1 - Bugfix + source build now contains complete project data\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix: Restore support for custom input, alongside text and TextSlice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1562\"\u003elark-parser/lark#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep sdist in sync with git (include all files in source build, including docs, tests and examples) by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1561\"\u003elark-parser/lark#1561\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lark-parser/lark/compare/1.3.0...1.3.1\"\u003ehttps://github.com/lark-parser/lark/compare/1.3.0...1.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.3.0 - Introduces text-slices, Earley fix, and various small improvements\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLark can now parse in sections of strings, using \u003ccode\u003eTextSlice\u003c/code\u003e, as a faster alternative to creating a \u0026quot;copy-slice\u0026quot; with \u003ccode\u003es[i:j]\u003c/code\u003e. \u003ca href=\"https://lark-parser.readthedocs.io/en/latest/classes.html#lark.utils.TextSlice\"\u003eLearn more\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support to \u003ccode\u003ematch\u003c/code\u003e on Tree instances\u003c/li\u003e\n\u003cli\u003eWhen serializing a Lark instance, added the option to include the grammar object (before compilation).\u003c/li\u003e\n\u003cli\u003eAdded convenience method \u003ccode\u003eTree.find_token()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfix of an edge case in Earley related to representation of ambiguity.\u003c/li\u003e\n\u003cli\u003eBugfixes in the standalone parser related to imports\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now dedents always contain line information\u003c/li\u003e\n\u003cli\u003eVarious small bugfixes (see PR list below)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFull list of PRs\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: Rephrase v_args() documentation to underline it only applies to Transformer classes by \u003ca href=\"https://github.com/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTiny refactor for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1451\"\u003e#1451\u003c/a\u003e by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1459\"\u003elark-parser/lark#1459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEarley: share nodes created by the scanner with the completer by \u003ca href=\"https://github.com/chanicpanic\"\u003e\u003ccode\u003e@​chanicpanic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1451\"\u003elark-parser/lark#1451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter error in Lark.parse when using on_error when parser!=lalr (issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1311\"\u003e#1311\u003c/a\u003e) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1460\"\u003elark-parser/lark#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSymbol.__eq__\u003c/code\u003e to return false when comparing with None by \u003ca href=\"https://github.com/weaversam8\"\u003e\u003ccode\u003e@​weaversam8\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1481\"\u003elark-parser/lark#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention internal/external transformers in the documentation by \u003ca href=\"https://github.com/odanoburu\"\u003e\u003ccode\u003e@​odanoburu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1486\"\u003elark-parser/lark#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Tree.find_token() method by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1467\"\u003elark-parser/lark#1467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType \u003ccode\u003eTerminal.__init__\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/lark-parser/lark/pull/1503\"\u003elark-parser/lark#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd guidance on handling comments in languages with significant indentation by \u003ca href=\"https://github.com/nchammas\"\u003e\u003ccode\u003e@​nchammas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1502\"\u003elark-parser/lark#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Small fix for PR 1507 by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1508\"\u003elark-parser/lark#1508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on binding power of numeric quantifiers by \u003ca href=\"https://github.com/414owen\"\u003e\u003ccode\u003e@​414owen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1507\"\u003elark-parser/lark#1507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap functools.partial in staticmethod() to add compatibility with Python 3.14 by \u003ca href=\"https://github.com/hrnciar\"\u003e\u003ccode\u003e@​hrnciar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1483\"\u003elark-parser/lark#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generic type of Transformer_InPlaceRecursive by \u003ca href=\"https://github.com/lbhm\"\u003e\u003ccode\u003e@​lbhm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1518\"\u003elark-parser/lark#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded TextSlice; Lark can now parse/lex a text-slice by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1452\"\u003elark-parser/lark#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport match on tree by \u003ca href=\"https://github.com/colmmurphyxyz\"\u003e\u003ccode\u003e@​colmmurphyxyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1521\"\u003elark-parser/lark#1521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Updated link of DSL article to a new version by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1529\"\u003elark-parser/lark#1529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter error messages for shift/reduct conflicts by \u003ca href=\"https://github.com/skogsbaer\"\u003e\u003ccode\u003e@​skogsbaer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1531\"\u003elark-parser/lark#1531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSerialize Lark.grammar (fixes issue \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1472\"\u003e#1472\u003c/a\u003e) by \u003ca href=\"https://github.com/NasalDaemon\"\u003e\u003ccode\u003e@​NasalDaemon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1506\"\u003elark-parser/lark#1506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes for PR \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1506\"\u003e#1506\u003c/a\u003e, which adds the option to cache the grammar definition by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1540\"\u003elark-parser/lark#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix in indenter - now always creating dedents with line information by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1547\"\u003elark-parser/lark#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: issue when unpickling in the standalone parser, due to lingering Token instances by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1553\"\u003elark-parser/lark#1553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude missing import in standalone parser by \u003ca href=\"https://github.com/pdeibert\"\u003e\u003ccode\u003e@​pdeibert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1541\"\u003elark-parser/lark#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion bump (1.3.0) by \u003ca href=\"https://github.com/erezsh\"\u003e\u003ccode\u003e@​erezsh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1554\"\u003elark-parser/lark#1554\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/skepppy\"\u003e\u003ccode\u003e@​skepppy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lark-parser/lark/pull/1458\"\u003elark-parser/lark#1458\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/lark-parser/lark/commit/f79772cd4c6d2076b5dc01f399dbb816cc484f77\"\u003e\u003ccode\u003ef79772c\u003c/code\u003e\u003c/a\u003e Version bump (1.3.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/b64e9f42c93e9c05c17fac694ae5cbd18c041a2b\"\u003e\u003ccode\u003eb64e9f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1561\"\u003e#1561\u003c/a\u003e from chanicpanic/sdist-git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/ad0ea5f14ee4afbaf617cc088e1b8fe2fcff08fc\"\u003e\u003ccode\u003ead0ea5f\u003c/code\u003e\u003c/a\u003e Update MANIFEST.in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/1f6f03c10540d4646c1a70b1da16a90592d7ec58\"\u003e\u003ccode\u003e1f6f03c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1562\"\u003e#1562\u003c/a\u003e from lark-parser/issue1560\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/7c365de586325620a20f2753b36ffa313c1d9b45\"\u003e\u003ccode\u003e7c365de\u003c/code\u003e\u003c/a\u003e Added custom input test (based on code from examples)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/19bbbee5d79845123f7f07ab716ec88185e2fa9d\"\u003e\u003ccode\u003e19bbbee\u003c/code\u003e\u003c/a\u003e Bugfix: Restore support for custom input, alongside text and TextSlice (Issue...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/dbcb60e888c5c8a3656c9f0c1ef0f928bb7c5ad6\"\u003e\u003ccode\u003edbcb60e\u003c/code\u003e\u003c/a\u003e Keep sdist in sync with git\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/e332c2df2f7d400460a5f1204d9bc36b49b25635\"\u003e\u003ccode\u003ee332c2d\u003c/code\u003e\u003c/a\u003e Version bump (1.3.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/aa5666c30e255257b0c36ef93c80d800f84a04ca\"\u003e\u003ccode\u003eaa5666c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1541\"\u003e#1541\u003c/a\u003e from pdeibert/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lark-parser/lark/commit/41934d390dd7661a82df5ed28bd75655fe797cf7\"\u003e\u003ccode\u003e41934d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lark-parser/lark/issues/1553\"\u003e#1553\u003c/a\u003e from lark-parser/issue1552\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lark-parser/lark/compare/1.2.2...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shapely` from 2.0.7 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\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/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (unreleased)\u003c/h2\u003e\n\u003cp\u003eImproved performance of the Geometry -\u0026gt; float scalar operations: \u003ccode\u003earea\u003c/code\u003e, \u003ccode\u003elength\u003c/code\u003e,\n\u003ccode\u003eminimum_clearance\u003c/code\u003e, \u003ccode\u003ex\u003c/code\u003e, \u003ccode\u003ey\u003c/code\u003e, \u003ccode\u003ez\u003c/code\u003e and \u003ccode\u003em\u003c/code\u003e. Benchmarks showed a change of call duration\nfrom 2.6 microseconds to 0.2 microseconds (on the \u003ccode\u003ePoint.x\u003c/code\u003e attribute).\u003c/p\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-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/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densify test for latest GEOS main (densify\u0026gt;0.001...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shapely/shapely/compare/2.0.7...2.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-two-factor-auth[phonenumbers]` from 1.17.0 to 1.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/releases\"\u003edjango-two-factor-auth[phonenumbers]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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/jazzband/django-two-factor-auth/blob/master/CHANGELOG.md\"\u003edjango-two-factor-auth[phonenumbers]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew translations for Azerbaijani and Serbian\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 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/jazzband/django-two-factor-auth/commit/38a6ba7b6fb579b3465d66f33c4e2f25ffad28c0\"\u003e\u003ccode\u003e38a6ba7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/778\"\u003e#778\u003c/a\u003e from claudep/missing_trans\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/004c93839e331e72740c4e6e73516d05afbca855\"\u003e\u003ccode\u003e004c938\u003c/code\u003e\u003c/a\u003e Fixes \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/777\"\u003e#777\u003c/a\u003e - Add missing Azerbaijani and Serbian translations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/59f44669649f281ca9b25a2beba438609f72a3a5\"\u003e\u003ccode\u003e59f4466\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/776\"\u003e#776\u003c/a\u003e from jazzband/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/d5517043e9f9cdec4e4850f0f33e28eea485fb79\"\u003e\u003ccode\u003ed551704\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/7405b6fd545ddbbd67d28292fca2c8ef6cf0de92\"\u003e\u003ccode\u003e7405b6f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/774\"\u003e#774\u003c/a\u003e from moggers87/release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b47945c8188e46ad2f64bf929c1a745682b6de15\"\u003e\u003ccode\u003eb47945c\u003c/code\u003e\u003c/a\u003e Update CHANGELOG with latest changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b20741c609ca3fd3fe52dd3cfe1ebc3e98ce2383\"\u003e\u003ccode\u003eb20741c\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/966dab4c5bdf11b88e42bc820c8adea684b4e0d0\"\u003e\u003ccode\u003e966dab4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/775\"\u003e#775\u003c/a\u003e from claudep/phoneplugin2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/9c72f871f0ebd3bede20d823372b02608480c4c7\"\u003e\u003ccode\u003e9c72f87\u003c/code\u003e\u003c/a\u003e Refs \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/469\"\u003e#469\u003c/a\u003e - Only import phonenumber functions when plugin is installed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/ec0923bf400d6faf3c82acff312c1fe5add70047\"\u003e\u003ccode\u003eec0923b\u003c/code\u003e\u003c/a\u003e Pull latest translations from Transifex\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/compare/1.17.0...1.18.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.40.30 to 1.40.69\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/aecb2bb02c0af646e07fdc13751e478d4611c992\"\u003e\u003ccode\u003eaecb2bb\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.69'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/ac7646e2bdbf42c6485e291236b65c6b34962311\"\u003e\u003ccode\u003eac7646e\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.69\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/f16254efa15f61e398a4a711b2f2962f45d9535a\"\u003e\u003ccode\u003ef16254e\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/17eb00486e0dfa6fc5fab23b7c8256f3d37c97fe\"\u003e\u003ccode\u003e17eb004\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.68'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/6a34b30475f63c9eb7a84d7eaf7f44908468cf77\"\u003e\u003ccode\u003e6a34b30\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.68' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/3dc1e85172db100b0a5597e603ff046388bedd61\"\u003e\u003ccode\u003e3dc1e85\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.68\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/014e41eeaa6eee59837c8a0aee60becc73a009a6\"\u003e\u003ccode\u003e014e41e\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/6a72deb2a996de0d017890192ef3028fff1fcb20\"\u003e\u003ccode\u003e6a72deb\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.67'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/f9c83204a24a05e6d0c386643682c21518215c8b\"\u003e\u003ccode\u003ef9c8320\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.67' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/4a88e5069f58107977d514cc93bdbccd08493976\"\u003e\u003ccode\u003e4a88e50\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.67\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.40.30...1.40.69\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uwsgi` from 2.0.30 to 2.0.31\n\nUpdates `coverage` from 7.10.6 to 7.11.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/releases\"\u003ecoverage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.11.3\u003c/h2\u003e\n\u003ch2\u003eVersion 7.11.3 — 2025-11-09\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the 7.11.1 changes meant that conflicts between a requested measurement core and other settings would raise an error. This was a breaking change from previous behavior, as reported in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2076\"\u003eissue 2076\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2078\"\u003eissue 2078\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe previous behavior has been restored: when the requested core conflicts with other settings, another core is used instead, and a warning is issued.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFor contributors: the repo has moved from Ned’s \u003ca href=\"https://github.com/nedbat\"\u003enedbat GitHub account\u003c/a\u003e to the \u003ca href=\"https://github.com/coveragepy\"\u003ecoveragepy GitHub organization\u003c/a\u003e. The default branch has changed from master to main.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.11.3\"\u003ecoverage 7.11.3\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.11.3\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e7.11.2\u003c/h2\u003e\n\u003ch2\u003eVersion 7.11.2 — 2025-11-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: using the “sysmon” measurement core in 7.11.1, if Python code was claimed to come from a non-Python file, a \u003ccode\u003eNotPython\u003c/code\u003e exception could be raised. This could happen for example with Jinja templates compiled to Python, as reported in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2077\"\u003eissue 2077\u003c/a\u003e. This is now fixed.\u003c/li\u003e\n\u003cli\u003eDoc: corrected the first entry in the 7.11.1 changelog.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.11.2\"\u003ecoverage 7.11.2\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.11.2\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e7.11.1\u003c/h2\u003e\n\u003ch2\u003eVersion 7.11.1 — 2025-11-07\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: some chanages to details of how the measurement core is chosen, and how conflicting settings are handled. The “sysmon” core cannot be used with some conurrency settings, with dynamic context, and in Python 3.12/3.13, with branch measurement.\n\u003cul\u003e\n\u003cli\u003eIf the core is not specified and defaults to “sysmon” (Python 3.14+), but other settings conflict with sysmon, then the “ctrace” core will be used instead with no warning. For concurrency conflicts, this used to produce an error, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2064\"\u003eissue 2064\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIf the “sysmon” core is explicitly requested in your configuration, but other settings conflict, an error is now raised. This used to produce a warning.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix: some multi-line case clauses or for loops (and probably other constructs) could cause incorrect claims of missing branches with the sys.monitoring core, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2070\"\u003eissue 2070\u003c/a\u003e. This is now fixed.\u003c/li\u003e\n\u003cli\u003eFix: when running in pytest under coverage, a \u003ccode\u003ebreakpoint()\u003c/code\u003e would stop in the wrong frame, one level down from where it should, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1420\"\u003eissue 1420\u003c/a\u003e. This was due to a coverage change in v6.4.1 that seemed to give a slight performance improvement, but I couldn’t reproduce the performance gain, so it’s been reverted, fixing the debugger problem.\u003c/li\u003e\n\u003cli\u003eA new debug option \u003ccode\u003e--debug=core\u003c/code\u003e shows which core is in use and why.\u003c/li\u003e\n\u003cli\u003eSplit \u003ccode\u003esqlite\u003c/code\u003e debugging information out of the \u003ccode\u003esys\u003c/code\u003e \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/HEAD/commands/cmd_debug.rst#cmd-debug\"\u003ecoverage debug\u003c/a\u003e and \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/HEAD/commands/cmd_debug.rst#cmd-run-debug\"\u003e--debug option\u003c/a\u003e options since it’s bulky and not very useful.\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ca href=\"https://coverage.readthedocs.io/en/latest/howitworks.html#howitworks\"\u003eHow coverage.py works\u003c/a\u003e page to better describe the three different measurement cores.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e:arrow_right:  PyPI page: \u003ca href=\"https://pypi.org/project/coverage/7.11.1\"\u003ecoverage 7.11.1\u003c/a\u003e.\n:arrow_right:  To install: \u003ccode\u003epython3 -m pip install coverage==7.11.1\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003e7.11.1\u003c/h2\u003e\n\u003ch2\u003eVersion 7.11.1 — 2025-11-07\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: some chanages to details of how the measurement core is chosen, and how conflicting settings are handled. The “sysmon” core cannot be used with some conurrency settings, with dynamic context, and in Python 3.12/3.13, with branch measurement.\n\u003cul\u003e\n\u003cli\u003eIf the core is not specified and defaults to “sysmon” (Python 3.14+), but other settings conflict with sysmon, then the “ctrace” core will be used instead with no warning. For concurrency conflicts, this used to produce an error, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2064\"\u003eissue 2064\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIf the “sysmon” core is explicitly requested in your configuration, but other settings conflict, an error is now raised. This used to produce a warning.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix: some multi-line case clauses or for loops (and probably other constructs) could cause incorrect claims of missing branches with the sys.monitoring core, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2070\"\u003eissue 2070\u003c/a\u003e. This is now fixed.\u003c/li\u003e\n\u003cli\u003eFix: when running in pytest under coverage, a \u003ccode\u003ebreakpoint()\u003c/code\u003e would stop in the wrong frame, one level down from where it should, as described in \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1420\"\u003eissue 1420\u003c/a\u003e. This was due to a coverage change in v6.4.1 that seemed to give a slight performance improve...\n\n_Description has been truncated_","html_url":"https://github.com/SEED-platform/seed/pull/5136","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SEED-platform%2Fseed/issues/5136","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5136/packages"}}]}