{"id":15610,"name":"sphinx-autobuild","ecosystem":"pip","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild","issues_count":210,"created_at":"2025-06-07T00:05:02.780Z","updated_at":"2025-06-07T00:05:02.780Z","purl":"pkg:pypi/sphinx-autobuild","metadata":{"id":2927951,"name":"sphinx-autobuild","ecosystem":"pypi","description":"Rebuild Sphinx documentation on changes, with hot reloading in the browser.","homepage":null,"licenses":"MIT License","normalized_licenses":["MIT"],"repository_url":"https://github.com/sphinx-doc/sphinx-autobuild","keywords_array":[],"namespace":null,"versions_count":24,"first_release_published_at":"2013-12-25T17:14:07.000Z","latest_release_published_at":"2024-10-02T23:15:28.000Z","latest_release_number":"2024.10.3","last_synced_at":"2025-06-06T17:00:55.768Z","created_at":"2022-04-10T12:40:54.612Z","updated_at":"2025-06-06T17:00:55.769Z","registry_url":"https://pypi.org/project/sphinx-autobuild/","install_command":"pip install sphinx-autobuild --index-url https://pypi.org/simple","documentation_url":"https://github.com/sphinx-doc/sphinx-autobuild#readme","metadata":{"funding":null,"documentation":"https://github.com/sphinx-doc/sphinx-autobuild#readme","classifiers":["Development Status :: 5 - Production/Stable","Environment :: Console","Environment :: Web Environment","Framework :: Sphinx","Intended Audience :: Developers","License :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.9","Programming Language :: Python :: Implementation :: CPython","Programming Language :: Python :: Implementation :: PyPy","Topic :: Documentation","Topic :: Documentation :: Sphinx","Topic :: Software Development","Topic :: Software Development :: Documentation","Topic :: Software Development :: Libraries :: Python Modules","Topic :: Utilities"],"normalized_name":"sphinx-autobuild"},"repo_metadata":{"id":12764774,"uuid":"15438125","full_name":"sphinx-doc/sphinx-autobuild","owner":"sphinx-doc","description":"Watch a Sphinx directory and rebuild the documentation when a change is detected. Also includes a hot-reload web server.","archived":false,"fork":false,"pushed_at":"2024-04-13T01:31:04.000Z","size":493,"stargazers_count":508,"open_issues_count":23,"forks_count":71,"subscribers_count":21,"default_branch":"main","last_synced_at":"2024-04-13T18:06:29.650Z","etag":null,"topics":[],"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/sphinx-doc.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE.rst","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.rst","dei":null}},"created_at":"2013-12-25T17:09:56.000Z","updated_at":"2024-04-15T22:26:43.379Z","dependencies_parsed_at":"2023-01-13T17:07:40.070Z","dependency_job_id":"13b9bf61-d27d-4679-b5b5-c5bfd0fb2383","html_url":"https://github.com/sphinx-doc/sphinx-autobuild","commit_stats":{"total_commits":301,"total_committers":29,"mean_commits":"10.379310344827585","dds":0.7308970099667774,"last_synced_commit":"7a8fa1206c65bbd993af7345cf7e9d0f8013d8ed"},"previous_names":["garetjax/sphinx-autobuild","executablebooks/sphinx-autobuild"],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sphinx-doc","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222500323,"owners_count":16994014,"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":"sphinx-doc","name":"Sphinx","uuid":"9928167","kind":"organization","description":"Sphinx makes it easy to create intelligent and beautiful documentation","email":null,"website":"https://www.sphinx-doc.org","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/9928167?v=4","repositories_count":18,"last_synced_at":"2024-04-14T20:53:20.512Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/sphinx-doc","funding_links":["https://github.com/sponsors/sphinx-doc"],"total_stars":7477,"followers":118,"following":0,"created_at":"2022-11-02T16:32:44.897Z","updated_at":"2024-04-14T20:53:24.597Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sphinx-doc","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sphinx-doc/repositories"},"tags":[{"name":"2024.04.13","sha":"bf330a4d542b42f5a0bd6510d6a478b17b9e2d8c","kind":"tag","published_at":"2024-04-13T01:30:34.000Z","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/2024.04.13","html_url":"https://github.com/sphinx-doc/sphinx-autobuild/releases/tag/2024.04.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/2024.04.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/2024.04.13/manifests"},{"name":"2024.02.04","sha":"7a8fa1206c65bbd993af7345cf7e9d0f8013d8ed","kind":"tag","published_at":"2024-02-04T06:08:59.000Z","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/2024.02.04","html_url":"https://github.com/sphinx-doc/sphinx-autobuild/releases/tag/2024.02.04","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/2024.02.04","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/2024.02.04/manifests"},{"name":"2021.03.14","sha":"1eb7d7746b773f515de64f1bd83c14bccca8a1ef","kind":"commit","published_at":"2021-03-14T13:43:08.000Z","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/2021.03.14","html_url":"https://github.com/sphinx-doc/sphinx-autobuild/releases/tag/2021.03.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/2021.03.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/2021.03.14/manifests"},{"name":"2020.09.01","sha":"425f51570c5530f8abf7d8c1268638b5365ea3b9","kind":"commit","published_at":"2020-08-31T11:28:06.000Z","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/2020.09.01","html_url":"https://github.com/sphinx-doc/sphinx-autobuild/releases/tag/2020.09.01","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/2020.09.01","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/2020.09.01/manifests"},{"name":"v0.7.1","sha":"e0f40b6359ca00a48ca5ba903de1e25da27de453","kind":"tag","published_at":"2017-07-05T10:52:25.000Z","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/v0.7.1","html_url":"https://github.com/sphinx-doc/sphinx-autobuild/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"0c949589f4c959ca12e2a45d4bc2657a647f5896","kind":"tag","published_at":"2017-07-05T08:33:08.000Z","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/v0.7.0","html_url":"https://github.com/sphinx-doc/sphinx-autobuild/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.7.0/manifests"},{"name":"v0.6.0","sha":"d151de71865ace980d2ae79e01ee58c32b84beee","kind":"tag","published_at":"2016-02-13T23:11:54.000Z","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/v0.6.0","html_url":"https://github.com/sphinx-doc/sphinx-autobuild/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.6.0/manifests"},{"name":"v0.5.2","sha":"c6180cfe26e6792dc77bf6e8e7ba650e5c90bdc7","kind":"tag","published_at":"2015-04-10T15:39:23.000Z","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/v0.5.2","html_url":"https://github.com/sphinx-doc/sphinx-autobuild/releases/tag/v0.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.5.2/manifests"},{"name":"v0.5.1","sha":"e7a55c2e27374007677f2c73a41b28cbe2d3c23b","kind":"tag","published_at":"2015-04-10T15:27:59.000Z","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/v0.5.1","html_url":"https://github.com/sphinx-doc/sphinx-autobuild/releases/tag/v0.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.5.1/manifests"},{"name":"v0.5.0","sha":"bd03d672ff247bb4b047fef55b12764bd8b0682c","kind":"tag","published_at":"2015-01-28T07:09:38.000Z","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/v0.5.0","html_url":"https://github.com/sphinx-doc/sphinx-autobuild/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"4802eeae88e3da8b37ce14e5e790e19b227bbc9f","kind":"tag","published_at":"2014-12-23T10:59:16.000Z","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/v0.4.0","html_url":"https://github.com/sphinx-doc/sphinx-autobuild/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.4.0/manifests"},{"name":"v0.3.0","sha":"c526b2e5bcf12d8d9919cc6dbed3f6eb99667503","kind":"tag","published_at":"2014-08-21T13:24:39.000Z","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/v0.3.0","html_url":"https://github.com/sphinx-doc/sphinx-autobuild/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.3.0/manifests"},{"name":"old-master","sha":"a2159594677039546e7007d003e4735784634291","kind":"commit","published_at":"2014-03-23T12:10:05.000Z","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/old-master","html_url":"https://github.com/sphinx-doc/sphinx-autobuild/releases/tag/old-master","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/old-master","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/old-master/manifests"},{"name":"v0.2.3","sha":"66fdedff1a66b16046a6fa41791d2f8fbf607eb6","kind":"tag","published_at":"2013-12-25T18:23:50.000Z","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/v0.2.3","html_url":"https://github.com/sphinx-doc/sphinx-autobuild/releases/tag/v0.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.2.3/manifests"},{"name":"v0.2.2","sha":"e6d54848a41c8de89a1bebb7c062b85294d5e1f3","kind":"tag","published_at":"2013-12-25T18:21:28.000Z","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/v0.2.2","html_url":"https://github.com/sphinx-doc/sphinx-autobuild/releases/tag/v0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.2.2/manifests"},{"name":"v0.2.1","sha":"990d4a24d1d6457ab847ab0fef8647176496c8f6","kind":"tag","published_at":"2013-12-25T18:09:56.000Z","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/v0.2.1","html_url":"https://github.com/sphinx-doc/sphinx-autobuild/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"342a84be0f1e746a1297b0990d27e7f8bf5ac73c","kind":"tag","published_at":"2013-12-25T17:58:09.000Z","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/v0.2.0","html_url":"https://github.com/sphinx-doc/sphinx-autobuild/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.2.0/manifests"},{"name":"v0.1.0","sha":"7a06cd28ca57e7d2763f828606766c0805cfcf47","kind":"tag","published_at":"2013-12-25T17:12:10.000Z","download_url":"https://codeload.github.com/sphinx-doc/sphinx-autobuild/tar.gz/v0.1.0","html_url":"https://github.com/sphinx-doc/sphinx-autobuild/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sphinx-doc%2Fsphinx-autobuild/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2024-11-11T01:24:21.692Z","dependent_packages_count":649,"downloads":5641728,"downloads_period":"last-month","dependent_repos_count":7271,"rankings":{"downloads":0.4674540949135054,"dependent_repos_count":0.11217334886302344,"dependent_packages_count":0.0502239558498206,"stargazers_count":2.84576359955287,"forks_count":5.345626802785964,"docker_downloads_count":1.0257803278432231,"average":1.6411703549680678},"purl":"pkg:pypi/sphinx-autobuild","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/sphinx-autobuild","docker_dependents_count":157,"docker_downloads_count":25118095,"usage_url":"https://repos.ecosyste.ms/usage/pypi/sphinx-autobuild","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/sphinx-autobuild/dependencies","status":null,"funding_links":["https://github.com/sponsors/sphinx-doc"],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sphinx-autobuild/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sphinx-autobuild/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sphinx-autobuild/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sphinx-autobuild/related_packages","maintainers":[{"uuid":"pradyunsg","login":"pradyunsg","name":null,"email":null,"url":null,"packages_count":28,"html_url":"https://pypi.org/user/pradyunsg/","role":null,"created_at":"2023-02-25T12:49:47.292Z","updated_at":"2023-02-25T12:49:47.292Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/pradyunsg/packages"},{"uuid":"AA-Turner","login":"AA-Turner","name":null,"email":null,"url":null,"packages_count":15,"html_url":"https://pypi.org/user/AA-Turner/","role":"Owner","created_at":"2024-02-05T06:28:50.169Z","updated_at":"2024-02-05T06:28:50.169Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/AA-Turner/packages"},{"uuid":"Sphinx","login":"Sphinx","name":null,"email":null,"url":null,"packages_count":6,"html_url":"https://pypi.org/user/Sphinx/","role":null,"created_at":"2024-11-11T01:23:43.794Z","updated_at":"2024-11-11T01:23:43.794Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/Sphinx/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690419,"maintainers_count":292811,"namespaces_count":0,"keywords_count":228590,"github":"pypi","metadata":{"funded_packages_count":48950},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-06T05:32:09.692Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},"unique_repositories_count":146,"unique_repositories_count_past_30_days":2,"recent_issues":[{"uuid":"4738463910","node_id":"PR_kwDONjSF6M7qSrP8","number":9,"state":"closed","title":"Update sphinx-autobuild requirement from ~=2025.8 to \u003e=2025.8,\u003c2022.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":19,"pull_request":true,"closed_at":"2026-06-25T04:11:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-24T21:05:37.000Z","updated_at":"2026-06-25T04:22:47.000Z","time_to_close":25582,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"sphinx-autobuild","old_version":"~=2025.8","new_version":"\u003e=2025.8,\u003c2022.0","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/1eb7d7746b773f515de64f1bd83c14bccca8a1ef\"\u003e\u003ccode\u003e1eb7d77\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/b54fb08afc5112bfcda1d844a700c5a20cd6ba5e\"\u003e\u003ccode\u003eb54fb08\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/106\"\u003e#106\u003c/a\u003e from pradyunsg/change-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/624d251da41db5c95b12f34d50b712f918784036\"\u003e\u003ccode\u003e624d251\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/105\"\u003e#105\u003c/a\u003e from pradyunsg/rework-how-it-looks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6c8cf8e41457e7ddf1cf332625e572305a7e6ac1\"\u003e\u003ccode\u003e6c8cf8e\u003c/code\u003e\u003c/a\u003e Add GitHub Actions based CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/52ad7d24b28bfe4c93b33c53f1c2aeb8da639cfa\"\u003e\u003ccode\u003e52ad7d2\u003c/code\u003e\u003c/a\u003e Drop Travis CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/675d5b60269d2d033b69b51bee7f9500d34460b5\"\u003e\u003ccode\u003e675d5b6\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/7208ba91afe0c5e99cac4065a6e6f888a1863172\"\u003e\u003ccode\u003e7208ba9\u003c/code\u003e\u003c/a\u003e Rework build output handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c185af8f14dcd90791d1d4480097a06de487f857\"\u003e\u003ccode\u003ec185af8\u003c/code\u003e\u003c/a\u003e Reuse nox environments, where sensible\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0796314bd4daa8c1cfb72ccfa4382cc1f255c649\"\u003e\u003ccode\u003e0796314\u003c/code\u003e\u003c/a\u003e Bump for development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/274445aba3c4bc75458f1a4c6b83f1e501fc71d4\"\u003e\u003ccode\u003e274445a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/98\"\u003e#98\u003c/a\u003e from hwine/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2025.08.25...2021.03.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull Request\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| sphinx-autobuild | [\u003e= 2024.10.3.dev0, \u003c 2024.10.4] |\n| sphinx-autobuild | [\u003e= 2024.10.2.dev0, \u003c 2024.10.3] |\n| sphinx-autobuild | [\u003e= 2024.10.dev0, \u003c 2024.11] |\n| sphinx-autobuild | [\u003e= 2024.dev0, \u003c 2025] |\n\u003c/details\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/zedzhen/pydantic-extra/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedzhen%2Fpydantic-extra/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"},{"uuid":"4585464347","node_id":"PR_kwDONM4U-s7iglzL","number":66,"state":"open","title":"chore(deps-dev): update sphinx-autobuild requirement from \u003e=2021.3.14 to \u003e=2024.10.3","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-04T03:17:24.000Z","updated_at":"2026-06-04T03:17:45.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): update","packages":[{"name":"sphinx-autobuild","old_version":"\u003e=2021.3.14","new_version":"\u003e=2024.10.3","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/86e2f373802417c944fda6c2930c8c3c98c20218\"\u003e\u003ccode\u003e86e2f37\u003c/code\u003e\u003c/a\u003e Release 2024.10.03\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/1771311d92e0dd1f338d91508b9a670c536dfff3\"\u003e\u003ccode\u003e1771311\u003c/code\u003e\u003c/a\u003e Improve handling for errors in pre-build commands (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/181\"\u003e#181\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/5eedf7220d71c4279094270e4b633d2b0ce5ebfc\"\u003e\u003ccode\u003e5eedf72\u003c/code\u003e\u003c/a\u003e Release 2024.10.02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/1743a4370869e3338c84ddb8778b3fa0b811b23d\"\u003e\u003ccode\u003e1743a43\u003c/code\u003e\u003c/a\u003e Show which paths changed when rebuilding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/028cf60ce16ebd6d5502eb33913577f719d5d574\"\u003e\u003ccode\u003e028cf60\u003c/code\u003e\u003c/a\u003e Add missing \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e imports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f3146c1f2d25ba525a47633badf3839a74765449\"\u003e\u003ccode\u003ef3146c1\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003e-m sphinx build\u003c/code\u003e if supported\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/49457de98ec91593f03770aefc7a8d2cbf4a1a12\"\u003e\u003ccode\u003e49457de\u003c/code\u003e\u003c/a\u003e fixup! Fix path filtering on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/2e4e6f7ca44201fca7dfa8ebe69a8488b70a6323\"\u003e\u003ccode\u003e2e4e6f7\u003c/code\u003e\u003c/a\u003e Split \u003ccode\u003eshow()\u003c/code\u003e into \u003ccode\u003eshow_message()\u003c/code\u003e and \u003ccode\u003eshow_command()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/829ec7125a8585af8ec98188ae61f1da1c379cb1\"\u003e\u003ccode\u003e829ec71\u003c/code\u003e\u003c/a\u003e Restrict the release workflow to the \u003ca href=\"https://github.com/sphinx-doc\"\u003e\u003ccode\u003e@​sphinx-doc\u003c/code\u003e\u003c/a\u003e organisation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/4552a5ffc48c1183064102068ec531e3f350fbd2\"\u003e\u003ccode\u003e4552a5f\u003c/code\u003e\u003c/a\u003e Release 2024.09.19\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2021.03.14...2024.10.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/dr-gareth-roberts/insideLLMs/pull/66","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dr-gareth-roberts%2FinsideLLMs/issues/66","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/66/packages"},{"uuid":"4418904238","node_id":"PR_kwDOSPl5987aJhs9","number":71,"state":"open","title":"chore(deps-dev)(deps-dev): Update sphinx-autobuild requirement from ^2021.3.14 to ^2024.10.3","user":"dependabot[bot]","labels":[],"assignees":["Zyrtnin"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-11T07:30:06.000Z","updated_at":"2026-05-11T07:30:08.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)(deps-dev): Update","packages":[{"name":"sphinx-autobuild","old_version":"^2021.3.14","new_version":"^2024.10.3","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/86e2f373802417c944fda6c2930c8c3c98c20218\"\u003e\u003ccode\u003e86e2f37\u003c/code\u003e\u003c/a\u003e Release 2024.10.03\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/1771311d92e0dd1f338d91508b9a670c536dfff3\"\u003e\u003ccode\u003e1771311\u003c/code\u003e\u003c/a\u003e Improve handling for errors in pre-build commands (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/181\"\u003e#181\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/5eedf7220d71c4279094270e4b633d2b0ce5ebfc\"\u003e\u003ccode\u003e5eedf72\u003c/code\u003e\u003c/a\u003e Release 2024.10.02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/1743a4370869e3338c84ddb8778b3fa0b811b23d\"\u003e\u003ccode\u003e1743a43\u003c/code\u003e\u003c/a\u003e Show which paths changed when rebuilding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/028cf60ce16ebd6d5502eb33913577f719d5d574\"\u003e\u003ccode\u003e028cf60\u003c/code\u003e\u003c/a\u003e Add missing \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e imports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f3146c1f2d25ba525a47633badf3839a74765449\"\u003e\u003ccode\u003ef3146c1\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003e-m sphinx build\u003c/code\u003e if supported\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/49457de98ec91593f03770aefc7a8d2cbf4a1a12\"\u003e\u003ccode\u003e49457de\u003c/code\u003e\u003c/a\u003e fixup! Fix path filtering on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/2e4e6f7ca44201fca7dfa8ebe69a8488b70a6323\"\u003e\u003ccode\u003e2e4e6f7\u003c/code\u003e\u003c/a\u003e Split \u003ccode\u003eshow()\u003c/code\u003e into \u003ccode\u003eshow_message()\u003c/code\u003e and \u003ccode\u003eshow_command()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/829ec7125a8585af8ec98188ae61f1da1c379cb1\"\u003e\u003ccode\u003e829ec71\u003c/code\u003e\u003c/a\u003e Restrict the release workflow to the \u003ca href=\"https://github.com/sphinx-doc\"\u003e\u003ccode\u003e@​sphinx-doc\u003c/code\u003e\u003c/a\u003e organisation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/4552a5ffc48c1183064102068ec531e3f350fbd2\"\u003e\u003ccode\u003e4552a5f\u003c/code\u003e\u003c/a\u003e Release 2024.09.19\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2021.03.14...2024.10.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/MudwoodLabs/pyrxd/pull/71","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MudwoodLabs%2Fpyrxd/issues/71","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/71/packages"},{"uuid":"4308623324","node_id":"PR_kwDOAgXKRM7Umfn1","number":3810,"state":"closed","title":"Update sphinx-autobuild requirement from \u003e=2021.3.14 to \u003e=2025.8.25 in /doc","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-04T11:28:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-22T11:23:38.000Z","updated_at":"2026-05-04T11:28:52.000Z","time_to_close":1037104,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"sphinx-autobuild","old_version":"\u003e=2021.3.14","new_version":"\u003e=2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":"/doc","ecosystem":"pip"},"body":"Updates the requirements on [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/86e2f373802417c944fda6c2930c8c3c98c20218\"\u003e\u003ccode\u003e86e2f37\u003c/code\u003e\u003c/a\u003e Release 2024.10.03\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2021.03.14...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/nest/nest-simulator/pull/3810","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nest%2Fnest-simulator/issues/3810","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3810/packages"},{"uuid":"3884627354","node_id":"PR_kwDOKe6bh87A2J84","number":195,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 39 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-02-02T10:48:58.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-02T08:23:07.000Z","updated_at":"2026-02-02T10:49:00.000Z","time_to_close":8751,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":39,"packages":[{"name":"coverage","old_version":"7.13.1","new_version":"7.13.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"ruff","old_version":"0.14.10","new_version":"0.14.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"sphinx","old_version":"8.2.3","new_version":"9.0.4","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-autodoc-typehints","old_version":"3.2.0","new_version":"3.6.1","repository_url":"https://github.com/tox-dev/sphinx-autodoc-typehints"},{"name":"sphinx-togglebutton","old_version":"0.3.2","new_version":"0.4.4","repository_url":"https://github.com/executablebooks/sphinx-togglebutton"},{"name":"pandas-stubs","old_version":"2.3.3.251219","new_version":"2.3.3.260113","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"types-python-dateutil","old_version":"2.9.0.20251115","new_version":"2.9.0.20260124","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"tomli","old_version":"2.3.0","new_version":"2.4.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"narwhals","old_version":"2.14.0","new_version":"2.15.0","repository_url":"https://github.com/narwhals-dev/narwhals"},{"name":"numpy","old_version":"2.3.2","new_version":"2.4.2","repository_url":"https://github.com/numpy/numpy"},{"name":"pandas","old_version":"2.3.3","new_version":"3.0.0","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"polars","old_version":"1.36.1","new_version":"1.37.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pyarrow","old_version":"22.0.0","new_version":"23.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"duckdb","old_version":"1.4.3","new_version":"1.4.4","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"bigtree","old_version":"1.1.0","new_version":"1.3.0","repository_url":"https://github.com/kayjan/bigtree"},{"name":"anyio","old_version":"4.12.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"babel","old_version":"2.17.0","new_version":"2.18.0","repository_url":"https://github.com/python-babel/babel"},{"name":"cachetools","old_version":"6.2.4","new_version":"6.2.6","repository_url":"https://github.com/tkem/cachetools"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"google-api-core","old_version":"2.28.1","new_version":"2.29.0","repository_url":"https://github.com/googleapis/python-api-core"},{"name":"google-auth","old_version":"2.45.0","new_version":"2.48.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-auth-oauthlib","old_version":"1.2.2","new_version":"1.2.4","repository_url":"https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib"},{"name":"google-cloud-storage","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-cloud-storage-control","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"identify","old_version":"2.6.15","new_version":"2.6.16","repository_url":"https://github.com/pre-commit/identify"},{"name":"ipython","old_version":"8.37.0","new_version":"8.38.0","repository_url":"https://github.com/ipython/ipython"},{"name":"multidict","old_version":"6.7.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"protobuf","old_version":"6.33.2","new_version":"6.33.5","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pyparsing","old_version":"3.3.1","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"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.1","new_version":"2.8.3","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.50.0","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"wcwidth","old_version":"0.2.14","new_version":"0.5.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 36 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.1` | `7.13.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.10` | `0.14.14` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `8.2.3` | `9.0.4` |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-autodoc-typehints](https://github.com/tox-dev/sphinx-autodoc-typehints) | `3.2.0` | `3.6.1` |\n| [sphinx-togglebutton](https://github.com/executablebooks/sphinx-togglebutton) | `0.3.2` | `0.4.4` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.3.251219` | `2.3.3.260113` |\n| [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader) | `2.9.0.20251115` | `2.9.0.20260124` |\n| [tomli](https://github.com/hukkin/tomli) | `2.3.0` | `2.4.0` |\n| [narwhals](https://github.com/narwhals-dev/narwhals) | `2.14.0` | `2.15.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.2` | `2.4.2` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.3` | `3.0.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.36.1` | `1.37.1` |\n| [pyarrow](https://github.com/apache/arrow) | `22.0.0` | `23.0.0` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.4.3` | `1.4.4` |\n| [bigtree](https://github.com/kayjan/bigtree) | `1.1.0` | `1.3.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.0` | `4.12.1` |\n| [babel](https://github.com/python-babel/babel) | `2.17.0` | `2.18.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.4` | `6.2.6` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [google-api-core](https://github.com/googleapis/python-api-core) | `2.28.1` | `2.29.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.45.0` | `2.48.0` |\n| [google-auth-oauthlib](https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib) | `1.2.2` | `1.2.4` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.7.0` | `3.8.0` |\n| [google-cloud-storage-control](https://github.com/googleapis/google-cloud-python) | `1.8.0` | `1.9.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.15` | `2.6.16` |\n| [ipython](https://github.com/ipython/ipython) | `8.37.0` | `8.38.0` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.7.0` | `6.7.1` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.2` | `6.33.5` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.3.1` | `3.3.2` |\n| [setuptools](https://github.com/pypa/setuptools) | `80.9.0` | `80.10.2` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8.1` | `2.8.3` |\n| [starlette](https://github.com/Kludex/starlette) | `0.50.0` | `0.52.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.14` | `0.5.3` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n\n\nUpdates `coverage` from 7.13.1 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\u003c/blockquote\u003e\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.13.1...7.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.10 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.14.10...0.14.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx` from 8.2.3 to 9.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx/releases\"\u003esphinx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSphinx 9.0.4\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes/9.0.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes/9.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14143\"\u003e#14143\u003c/a\u003e: Fix spurious build warnings when translators reorder references\nin strings, or use translated display text in references.\nPatch by Matt Wang.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSphinx 9.0.3\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes/9.0.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes/9.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14142\"\u003e#14142\u003c/a\u003e: autodoc: Restore some missing exports in \u003ccode\u003esphinx.ext.autodoc\u003c/code\u003e.\nPatch by Adam Turner.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSphinx 9.0.2\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes/9.0.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes/9.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14142\"\u003e#14142\u003c/a\u003e: autodoc: Restore \u003ccode\u003esphinx.ext.autodoc.mock\u003c/code\u003e.\nPatch by Adam Turner.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSphinx 9.0.1\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes/9.0.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes/9.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13942\"\u003e#13942\u003c/a\u003e: autodoc: Restore the mapping interface for options objects.\nPatch by Adam Turner.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13942\"\u003e#13942\u003c/a\u003e: autodoc: Deprecate the mapping interface for options objects.\nPatch by Adam Turner.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13387\"\u003e#13387\u003c/a\u003e: Update translations.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSphinx 9.0.0\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes/9.0.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes/9.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13786\"\u003e#13786\u003c/a\u003e: Support \u003ca href=\"https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-22-2026-07-29\"\u003eDocutils 0.22\u003c/a\u003e. Patch by Adam Turner.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIncompatible changes\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/sphinx-doc/sphinx/blob/v9.0.4/CHANGES.rst\"\u003esphinx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 9.0.4 (released Dec 04, 2025)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14143\"\u003e#14143\u003c/a\u003e: Fix spurious build warnings when translators reorder references\nin strings, or use translated display text in references.\nPatch by Matt Wang.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 9.0.3 (released Dec 04, 2025)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14142\"\u003e#14142\u003c/a\u003e: autodoc: Restore some missing exports in :mod:\u003ccode\u003e!sphinx.ext.autodoc\u003c/code\u003e.\nPatch by Adam Turner.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 9.0.2 (released Dec 03, 2025)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14142\"\u003e#14142\u003c/a\u003e: autodoc: Restore :mod:\u003ccode\u003e!sphinx.ext.autodoc.mock\u003c/code\u003e.\nPatch by Adam Turner.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 9.0.1 (released Dec 01, 2025)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13942\"\u003e#13942\u003c/a\u003e: autodoc: Restore the mapping interface for options objects.\nPatch by Adam Turner.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13942\"\u003e#13942\u003c/a\u003e: autodoc: Deprecate the mapping interface for options objects.\nPatch by Adam Turner.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13387\"\u003e#13387\u003c/a\u003e: Update translations.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 9.0.0 (released Nov 30, 2025)\u003c/h1\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13786\"\u003e#13786\u003c/a\u003e: Support \u003ccode\u003eDocutils 0.22\u003c/code\u003e_. Patch by Adam Turner.\u003c/p\u003e\n\u003cp\u003e.. _Docutils 0.22: \u003ca href=\"https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-22-2026-07-29\"\u003ehttps://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-22-2026-07-29\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/8ddba7e4cb5fdc035b9b18b2a8594724a3a33b86\"\u003e\u003ccode\u003e8ddba7e\u003c/code\u003e\u003c/a\u003e Bump to 9.0.4 final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/69596331b3680ebfc3b6dfbc60ce86c885423316\"\u003e\u003ccode\u003e6959633\u003c/code\u003e\u003c/a\u003e [bot]: Update message catalogues (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14155\"\u003e#14155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/88a4a97873c9300b9de8d67ac7a4b98a0b26c03f\"\u003e\u003ccode\u003e88a4a97\u003c/code\u003e\u003c/a\u003e Allow reordered refs and translated display text in pending_xref (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14144\"\u003e#14144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/f666208d78296b93781227744b6608df82a63b51\"\u003e\u003ccode\u003ef666208\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/df8a9e7e9ecb3e1bedb669e0d5ae3850b78e5114\"\u003e\u003ccode\u003edf8a9e7\u003c/code\u003e\u003c/a\u003e Bump to 9.0.3 final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/bd89f96c64a1d0a33270b6ceccef90a73b11a3bf\"\u003e\u003ccode\u003ebd89f96\u003c/code\u003e\u003c/a\u003e Import names from defining module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/7d05936ae19273c28f79ecb94137ba2c01413ba8\"\u003e\u003ccode\u003e7d05936\u003c/code\u003e\u003c/a\u003e autodoc: Restore some missing exports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/b745a1153047c399fdf2e242bd964d07cab220a0\"\u003e\u003ccode\u003eb745a11\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/1ac581c7334583710a0c9651f02d0debf7e306cf\"\u003e\u003ccode\u003e1ac581c\u003c/code\u003e\u003c/a\u003e Bump to 9.0.2 final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/1281a832a884625e54f3585fe9fc8a0c5179ed2b\"\u003e\u003ccode\u003e1281a83\u003c/code\u003e\u003c/a\u003e autodoc: Restore \u003ccode\u003emock\u003c/code\u003e module for compatibility (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14152\"\u003e#14152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx/compare/v8.2.3...v9.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autobuild` from 2024.10.3 to 2025.8.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autodoc-typehints` from 3.2.0 to 3.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/releases\"\u003esphinx-autodoc-typehints's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.6.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude metadata in type hints by \u003ca href=\"https://github.com/AllanChain\"\u003e\u003ccode\u003e@​AllanChain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/594\"\u003etox-dev/sphinx-autodoc-typehints#594\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/AllanChain\"\u003e\u003ccode\u003e@​AllanChain\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/594\"\u003etox-dev/sphinx-autodoc-typehints#594\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/sphinx-autodoc-typehints/compare/3.6.0...3.6.1\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.6.0...3.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse Sphinx 9 class interface by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/589\"\u003etox-dev/sphinx-autodoc-typehints#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/tox-dev/sphinx-autodoc-typehints/compare/3.5.2...3.6.0\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.5.2...3.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.5.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve type information from docstrings if no type annotation is present and parameter has default value. by \u003ca href=\"https://github.com/christianaguilera-foundry\"\u003e\u003ccode\u003e@​christianaguilera-foundry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/576\"\u003etox-dev/sphinx-autodoc-typehints#576\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/christianaguilera-foundry\"\u003e\u003ccode\u003e@​christianaguilera-foundry\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/576\"\u003etox-dev/sphinx-autodoc-typehints#576\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/sphinx-autodoc-typehints/compare/3.5.1...3.5.2\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.5.1...3.5.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.5.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeclare 3.14 support by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/571\"\u003etox-dev/sphinx-autodoc-typehints#571\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/sphinx-autodoc-typehints/compare/3.5.0...3.5.1\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.5.0...3.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Union type on its own by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/570\"\u003etox-dev/sphinx-autodoc-typehints#570\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/sphinx-autodoc-typehints/compare/3.4.0...3.5.0\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.4.0...3.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.4.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/65ad3c43111a5eea6bbaec6803c9a1bcf78cdb6c\"\u003e\u003ccode\u003e65ad3c4\u003c/code\u003e\u003c/a\u003e Include metadata in type hints (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/594\"\u003e#594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/3501b47ca738726f704f41e795caeaa5ff8123a9\"\u003e\u003ccode\u003e3501b47\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/593\"\u003e#593\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/136044f097480713d11083ad0a09d0c3f59b42aa\"\u003e\u003ccode\u003e136044f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/9e7037ff0c9b26215bccd5434c46e42e7b56ed94\"\u003e\u003ccode\u003e9e7037f\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/1289a796eae8e0fcf572071444f06841db352653\"\u003e\u003ccode\u003e1289a79\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/590\"\u003e#590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/7abd95a25ac65bfabab68e1fcb71beb7b5d9f832\"\u003e\u003ccode\u003e7abd95a\u003c/code\u003e\u003c/a\u003e Use Sphinx 9 class interface (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/52114b2408a605fa53877a926b471cf317954c65\"\u003e\u003ccode\u003e52114b2\u003c/code\u003e\u003c/a\u003e Support Sphinx 9+ (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/78f49cd27cfb0954f20f275b90ade63e495bc370\"\u003e\u003ccode\u003e78f49cd\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/585\"\u003e#585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/00a035bdab3395becf1c6faf13c7a55a83243b81\"\u003e\u003ccode\u003e00a035b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/70d43cf1e60fe41588be00b40b4e5545c53dd2ab\"\u003e\u003ccode\u003e70d43cf\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.2.0...3.6.1\"\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\nUpdates `myst-parser` from 4.0.1 to 5.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/MyST-Parser/releases\"\u003emyst-parser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch1\u003eMyST-Parser 5.0.0\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eRelease Date\u003c/strong\u003e: 2026-01-15\u003c/p\u003e\n\u003cp\u003eThis release significantly bumps the supported versions of core dependencies:\u003c/p\u003e\n\u003ch2\u003e‼️ Breaking Changes\u003c/h2\u003e\n\u003cp\u003eThis release updates the minimum supported versions:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePython\u003c/strong\u003e: \u003ccode\u003e\u0026gt;=3.11\u003c/code\u003e (dropped Python 3.10, tests up to 3.14)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSphinx\u003c/strong\u003e: \u003ccode\u003e\u0026gt;=8,\u0026lt;10\u003c/code\u003e (dropped Sphinx 7, added Sphinx 9)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDocutils\u003c/strong\u003e: \u003ccode\u003e\u0026gt;=0.20,\u0026lt;0.23\u003c/code\u003e (dropped docutils 0.19, added docutils 0.22)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emarkdown-it-py\u003c/strong\u003e: \u003ccode\u003e~=4.0\u003c/code\u003e (upgraded from v3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⬆️ Dependency Upgrades\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade to markdown-it-py v4 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1060\"\u003e#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Drop Python 3.10 and Sphinx 7 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1059\"\u003e#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Drop docutils 0.19 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1061\"\u003e#1061\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Add support for Python 3.14 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1075\"\u003e#1075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Support Sphinx v9 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1076\"\u003e#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Allow docutils 0.22 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1084\"\u003e#1084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e👌 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e👌 Improve generation of meta nodes by \u003ca href=\"https://github.com/AA-Turner\"\u003e\u003ccode\u003e@​AA-Turner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1080\"\u003e#1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📚 Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e📚 Fix typo in tables.md by \u003ca href=\"https://github.com/electricalgorithm\"\u003e\u003ccode\u003e@​electricalgorithm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1034\"\u003e#1034\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Fix minor typo in \u003ccode\u003ecross-referencing.md\u003c/code\u003e by \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1036\"\u003e#1036\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔧 Internal / Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Update pre-commit by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1058\"\u003e#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Add \u003ccode\u003eAGENTS.md\u003c/code\u003e by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1083\"\u003e#1083\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/MyST-Parser/compare/v4.0.1...v5.0.0\"\u003ev4.0.1...v5.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/executablebooks/MyST-Parser/blob/master/CHANGELOG.md\"\u003emyst-parser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.0 - 2026-01-15\u003c/h2\u003e\n\u003cp\u003eThis release significantly bumps the supported versions of core dependencies:\u003c/p\u003e\n\u003ch3\u003e‼️ Breaking Changes\u003c/h3\u003e\n\u003cp\u003eThis release updates the minimum supported versions:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePython\u003c/strong\u003e: \u003ccode\u003e\u0026gt;=3.11\u003c/code\u003e (dropped Python 3.10, tests up to 3.14)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSphinx\u003c/strong\u003e: \u003ccode\u003e\u0026gt;=8,\u0026lt;10\u003c/code\u003e (dropped Sphinx 7, added Sphinx 9)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDocutils\u003c/strong\u003e: \u003ccode\u003e\u0026gt;=0.20,\u0026lt;0.23\u003c/code\u003e (dropped docutils 0.19, added docutils 0.22)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emarkdown-it-py\u003c/strong\u003e: \u003ccode\u003e~=4.0\u003c/code\u003e (upgraded from v3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e⬆️ Dependency Upgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade to markdown-it-py v4 by \u003ca href=\"gh-user:chrisjsewell\"\u003egh-user:chrisjsewell\u003c/a\u003e in \u003ca href=\"gh-pr:1060\"\u003egh-pr:1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Drop Python 3.10 and Sphinx 7 by \u003ca href=\"gh-user:chrisjsewell\"\u003egh-user:chrisjsewell\u003c/a\u003e in \u003ca href=\"gh-pr:1059\"\u003egh-pr:1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Drop docutils 0.19 by \u003ca href=\"gh-user:chrisjsewell\"\u003egh-user:chrisjsewell\u003c/a\u003e in \u003ca href=\"gh-pr:1061\"\u003egh-pr:1061\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Add support for Python 3.14 by \u003ca href=\"gh-user:chrisjsewell\"\u003egh-user:chrisjsewell\u003c/a\u003e in \u003ca href=\"gh-pr:1075\"\u003egh-pr:1075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Support Sphinx v9 by \u003ca href=\"gh-user:chrisjsewell\"\u003egh-user:chrisjsewell\u003c/a\u003e in \u003ca href=\"gh-pr:1076\"\u003egh-pr:1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Allow docutils 0.22 by \u003ca href=\"gh-user:chrisjsewell\"\u003egh-user:chrisjsewell\u003c/a\u003e in \u003ca href=\"gh-pr:1084\"\u003egh-pr:1084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e👌 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👌 Improve generation of meta nodes by \u003ca href=\"gh-user:AA-Turner\"\u003egh-user:AA-Turner\u003c/a\u003e in \u003ca href=\"gh-pr:1080\"\u003egh-pr:1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📚 Documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📚 Fix typo in tables.md by \u003ca href=\"gh-user:electricalgorithm\"\u003egh-user:electricalgorithm\u003c/a\u003e in \u003ca href=\"gh-pr:1034\"\u003egh-pr:1034\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Fix minor typo in \u003ccode\u003ecross-referencing.md\u003c/code\u003e by \u003ca href=\"gh-user:krassowski\"\u003egh-user:krassowski\u003c/a\u003e in \u003ca href=\"gh-pr:1036\"\u003egh-pr:1036\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🔧 Internal / Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Update pre-commit by \u003ca href=\"gh-user:chrisjsewell\"\u003egh-user:chrisjsewell\u003c/a\u003e in \u003ca href=\"gh-pr:1058\"\u003egh-pr:1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Add \u003ccode\u003eAGENTS.md\u003c/code\u003e by \u003ca href=\"gh-user:chrisjsewell\"\u003egh-user:chrisjsewell\u003c/a\u003e in \u003ca href=\"gh-pr:1083\"\u003egh-pr:1083\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/MyST-Parser/compare/v4.0.1...v5.0.0\"\u003ev4.0.1...v5.0.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/executablebooks/MyST-Parser/commit/a139a1fd47277c5adcb7ec033e9f4ad52e6c779e\"\u003e\u003ccode\u003ea139a1f\u003c/code\u003e\u003c/a\u003e 🚀 Release v5.0.0 (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1085\"\u003e#1085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/MyST-Parser/commit/540511016f1f7a791b300201b069c05cf76b6b65\"\u003e\u003ccode\u003e5405110\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1071\"\u003e#1071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/MyST-Parser/commit/19512c00ae2b4af7866850305d63c7a08f81684f\"\u003e\u003ccode\u003e19512c0\u003c/code\u003e\u003c/a\u003e ⬆️ Allow docutils 0.22 (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1084\"\u003e#1084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/MyST-Parser/commit/a9e529f279ebd3192b870632e92d47036b75d240\"\u003e\u003ccode\u003ea9e529f\u003c/code\u003e\u003c/a\u003e ⬆️ Support Sphinx v9 (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1076\"\u003e#1076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/MyST-Parser/commit/fcf78ca56fafd4454e3537cc8728e9af6b1052d0\"\u003e\u003ccode\u003efcf78ca\u003c/code\u003e\u003c/a\u003e 👌 Improve generation of meta nodes (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1080\"\u003e#1080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/MyST-Parser/commit/e0fc7a32ae6dee181213b86c6f85195bc08b2706\"\u003e\u003ccode\u003ee0fc7a3\u003c/code\u003e\u003c/a\u003e 🔧 Add \u003ccode\u003eAGENTS.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/MyST-Parser/commit/59d5384732ea25c9a4d7e8615ee74b97631326da\"\u003e\u003ccode\u003e59d5384\u003c/code\u003e\u003c/a\u003e ⬆️ Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1075\"\u003e#1075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/MyST-Parser/commit/7b7d961c12c1bf267dc5f87f69f87c603f18c8b9\"\u003e\u003ccode\u003e7b7d961\u003c/code\u003e\u003c/a\u003e ⬆️ Update pytest requirement from \u0026lt;9,\u0026gt;=8 to \u0026gt;=9,\u0026lt;10 (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/MyST-Parser/commit/3342a3c7d89dfd8de6a09bbf17bc9134160fe609\"\u003e\u003ccode\u003e3342a3c\u003c/code\u003e\u003c/a\u003e ⬆️ Update sphinxext-opengraph requirement from ~=0.9.0 to ~=0.13.0 (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1066\"\u003e#1066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/MyST-Parser/commit/2cf85deb227418c20fef5e9550a6f7e6671f6d4a\"\u003e\u003ccode\u003e2cf85de\u003c/code\u003e\u003c/a\u003e ⬆️ Update sphinxext-rediraffe requirement from ~=0.2.7 to ~=0.3.0 (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/executablebooks/MyST-Parser/compare/v4.0.1...v5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas-stubs` from 2.3.3.251219 to 2.3.3.260113\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/0cb16c482b2350047d51e5954e9d8bc5ff40f4d0\"\u003e\u003ccode\u003e0cb16c4\u003c/code\u003e\u003c/a\u003e Version 2.3.3.260113\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/bf9a74aa3092f59193f3ca26aae2d9e0c63a813f\"\u003e\u003ccode\u003ebf9a74a\u003c/code\u003e\u003c/a\u003e TYP: bump \u003ccode\u003ety\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1630\"\u003e#1630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/db79b540b34c76ec5a710d366638d2b4949f5bc4\"\u003e\u003ccode\u003edb79b54\u003c/code\u003e\u003c/a\u003e TST: numeric arrays (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1618\"\u003e#1618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/a0d8f9cedd7b1af11ad344b1717402425f403551\"\u003e\u003ccode\u003ea0d8f9c\u003c/code\u003e\u003c/a\u003e GH1614 Add more agg func methods for pivot_table (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1623\"\u003e#1623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/2c83c1fca90b14b2439d3312494642d7c52fd45e\"\u003e\u003ccode\u003e2c83c1f\u003c/code\u003e\u003c/a\u003e BUG: regression on \u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1594\"\u003e#1594\u003c/a\u003e for nightly (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1620\"\u003e#1620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/78fcc5b9da0aba3dda336624bf12f29b9b1214c4\"\u003e\u003ccode\u003e78fcc5b\u003c/code\u003e\u003c/a\u003e TYP: GH1614 Add more agg func methods for \u003ccode\u003epivot_table\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1615\"\u003e#1615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/cf423fdf17933fbf546cb129e9fc4df08c780724\"\u003e\u003ccode\u003ecf423fd\u003c/code\u003e\u003c/a\u003e CLN: move tests for \u003ccode\u003eSeries.astype\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1611\"\u003e#1611\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/0954c0db562e7e868b1839b4adcb2b049e9136e0\"\u003e\u003ccode\u003e0954c0d\u003c/code\u003e\u003c/a\u003e BUG: rename to \u003ccode\u003eNoDefaultDoNotUse\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1616\"\u003e#1616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/b54625adb16fad269b0ea420436a95f24002e5c7\"\u003e\u003ccode\u003eb54625a\u003c/code\u003e\u003c/a\u003e TST: \u003ccode\u003exStringArray\u003c/code\u003e and \u003ccode\u003eNumpyExtensionArray\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1594\"\u003e#1594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/df2ebd03248496f309cfdb87719de3f659530eb7\"\u003e\u003ccode\u003edf2ebd0\u003c/code\u003e\u003c/a\u003e DEPR: \u003ccode\u003eravel\u003c/code\u003e in \u003ccode\u003eIndex\u003c/code\u003e and \u003ccode\u003eSeries\u003c/code\u003e \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/36900\"\u003epandas-dev/pandas#36900\u003c/a\u003e pandas-dev/pand...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas-stubs/compare/v2.3.3.251219...v2.3.3.260113\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-python-dateutil` from 2.9.0.20251115 to 2.9.0.20260124\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typeshed-internal/stub_uploader/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tomli` from 2.3.0 to 2.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hukkin/tomli/blob/master/CHANGELOG.md\"\u003etomli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eTOML v1.1.0 compatibility\u003c/li\u003e\n\u003cli\u003eBinary wheels for Windows arm64\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/a678e6fdeffa89bd28e4ecc148b926a4e1bbbc7b\"\u003e\u003ccode\u003ea678e6f\u003c/code\u003e\u003c/a\u003e Bump version: 2.3.0 → 2.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/b8a1358cd4f3932b910333e0179270093596ce64\"\u003e\u003ccode\u003eb8a1358\u003c/code\u003e\u003c/a\u003e Tests: remove now needless \u0026quot;TOML compliance\u0026quot;-\u0026gt;\u0026quot;burntsushi\u0026quot; format conversion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/497937545351e0b4c8afe2299d5ddfb4a7e050cc\"\u003e\u003ccode\u003e4979375\u003c/code\u003e\u003c/a\u003e Update GitHub actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/f890dd1719da0e0f4e83cac39218ba2ded61fa94\"\u003e\u003ccode\u003ef890dd1\u003c/code\u003e\u003c/a\u003e Update pre-commit hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/d9c65c3379b8b92dfab52c8c694605b1aea5a65d\"\u003e\u003ccode\u003ed9c65c3\u003c/code\u003e\u003c/a\u003e Add 2.4.0 change log\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/0efe49d88c2d6ee38e3ad21bfcf64249968fe6c4\"\u003e\u003ccode\u003e0efe49d\u003c/code\u003e\u003c/a\u003e Update README for v2.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/9eb2125ef49071e673d42e383b5221a268665193\"\u003e\u003ccode\u003e9eb2125\u003c/code\u003e\u003c/a\u003e TOML 1.1: Make seconds optional in Date-Time and Time (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/203\"\u003e#203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/12314bde5b89a8bdc32de7403a2a4cf786187bbc\"\u003e\u003ccode\u003e12314bd\u003c/code\u003e\u003c/a\u003e TOML 1.1: Add \\xHH Unicode escape code to basic strings (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/202\"\u003e#202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/2a2aa62f1bc71b89b74d41dd2ab67b5dd24bc129\"\u003e\u003ccode\u003e2a2aa62\u003c/code\u003e\u003c/a\u003e TOML 1.1: Allow newlines and trailing comma in inline tables (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/200\"\u003e#200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/38297f82cd0ef067f1afd2ffb8dfa73b65c398da\"\u003e\u003ccode\u003e38297f8\u003c/code\u003e\u003c/a\u003e Xfail on tests for TOML 1.1 features not yet supported\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hukkin/tomli/compare/2.3.0...2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `narwhals` from 2.14.0 to 2.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/narwhals-dev/narwhals/releases\"\u003enarwhals's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eNarwhals v2.15.0\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etest: unxfail sqlframe tests for list functions (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3383\"\u003e#3383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: Test fairlearn using pytest marker (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3234\"\u003e#3234\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e✨ Enhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etest: unxfail sqlframe for \u003ccode\u003elist.median\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3387\"\u003e#3387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: Add \u003ccode\u003e{Expr,Series}.sin\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3365\"\u003e#3365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add \u003ccode\u003elist.sort\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3356\"\u003e#3356\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etest: Various GPU fixes (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3390\"\u003e#3390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: separate numpy array for tests (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3385\"\u003e#3385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(docs): Keep table filter only in api-completeness page (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3367\"\u003e#3367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: Fix \u003ccode\u003ehierarchicalforecast\u003c/code\u003e installation (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3362\"\u003e#3362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📖 Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(docs): Keep table filter only in api-completeness page (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3367\"\u003e#3367\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠️ Other improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: Refactor pandas-like pyarrow branching (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3361\"\u003e#3361\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThank you to all our contributors for making this release possible!\n\u003ca href=\"https://github.com/FBruzzesi\"\u003e\u003ccode\u003e@​FBruzzesi\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/MarcoGorelli\"\u003e\u003ccode\u003e@​MarcoGorelli\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/liamholmes31\"\u003e\u003ccode\u003e@​liamholmes31\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/raisadz\"\u003e\u003ccode\u003e@​raisadz\u003c/code\u003e\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/narwhals-dev/narwhals/commit/98f05d078f09f89e96f7f87af9ad3baf01f13df0\"\u003e\u003ccode\u003e98f05d0\u003c/code\u003e\u003c/a\u003e release: Bump version to 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/narwhals-dev/narwhals/commit/5ed4d81bf244dce18fa700f20fbf1536e0ca5cee\"\u003e\u003ccode\u003e5ed4d81\u003c/code\u003e\u003c/a\u003e test: Various GPU fixes (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3390\"\u003e#3390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/narwhals-dev/narwhals/commit/0a0954790e4cfc703b2b7d0afc6b35e996ed2a28\"\u003e\u003ccode\u003e0a09547\u003c/code\u003e\u003c/a\u003e test: unxfail sqlframe for \u003ccode\u003elist.median\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3387\"\u003e#3387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/narwhals-dev/narwhals/commit/74d6cf01a0bb1ced35af65b332c6cbc507797343\"\u003e\u003ccode\u003e74d6cf0\u003c/code\u003e\u003c/a\u003e test: separate numpy array for tests (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3385\"\u003e#3385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/narwhals-dev/narwhals/commit/42a8d7d8123f98e0f8a2e4f2e1fe7812df456689\"\u003e\u003ccode\u003e42a8d7d\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003e{Expr,Series}.sin\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3365\"\u003e#3365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/narwhals-dev/narwhals/commit/84ad2282b6e4ad7680397b7bf8e3c026cc20f301\"\u003e\u003ccode\u003e84ad228\u003c/code\u003e\u003c/a\u003e skip changelog(deps): bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3379\"\u003e#3379\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/narwhals-dev/narwhals/commit/0640ba1be40ec83af09e9524672aefef1cc7c822\"\u003e\u003ccode\u003e0640ba1\u003c/code\u003e\u003c/a\u003e skip changelog(deps): bump actions/upload-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/338...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-timeseries/pull/195","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-timeseries/issues/195","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/195/packages"},{"uuid":"3876949886","node_id":"PR_kwDODe0Bqc7AdYyg","number":371,"state":"closed","title":"Bump the dependencies group across 1 directory with 15 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-02T15:50:48.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-30T18:52:25.000Z","updated_at":"2026-02-02T15:50:50.000Z","time_to_close":248303,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":15,"packages":[{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"anyio","old_version":"4.10.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2025.8.3","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"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.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"roman-numerals-py","old_version":"3.1.0","new_version":"4.1.0","repository_url":"https://github.com/AA-Turner/roman-numerals"},{"name":"starlette","old_version":"0.49.1","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 15 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `3.0.2` | `3.1.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.12.1` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `2026.1.4` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.3` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [roman-numerals-py](https://github.com/AA-Turner/roman-numerals) | `3.1.0` | `4.1.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.1` | `0.52.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.40.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n\n\nUpdates `sphinx-autobuild` from 2024.10.3 to 2025.8.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-rtd-theme` from 3.0.2 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst\"\u003esphinx-rtd-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc2:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc1:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.0.2:\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/readthedocs/sphinx_rtd_theme/commit/795de79c8b311592f5863a25307d85924bf52164\"\u003e\u003ccode\u003e795de79\u003c/code\u003e\u003c/a\u003e Release 3.1.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1676\"\u003e#1676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/66d0fdd910e142d058c20b474338051b0751f03c\"\u003e\u003ccode\u003e66d0fdd\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to the test suite (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1668\"\u003e#1668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/fbe5e6004195a1e75654eface1884485c57eb68e\"\u003e\u003ccode\u003efbe5e60\u003c/code\u003e\u003c/a\u003e 3.1.0rc2 with support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/a76174c0bb0af755718f3cbdffbf97d19d0ac0ec\"\u003e\u003ccode\u003ea76174c\u003c/code\u003e\u003c/a\u003e Add support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1671\"\u003e#1671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/20733c3bcc60df8eda23512a0f3ccb2861486110\"\u003e\u003ccode\u003e20733c3\u003c/code\u003e\u003c/a\u003e Add support for Sphinx 9.0.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1666\"\u003e#1666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/71aacd35048c8bc2ab646ed4e3e9af1075034387\"\u003e\u003ccode\u003e71aacd3\u003c/code\u003e\u003c/a\u003e Update Code of Conduct URL (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1664\"\u003e#1664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/5a263753d52c1628c88392fbf52c729f5a8e79b5\"\u003e\u003ccode\u003e5a26375\u003c/code\u003e\u003c/a\u003e Run tests and build docs with Sphinx 8.2 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1640\"\u003e#1640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/8d4d394dad2d55cf9a4db880effac6aa5c7b12e6\"\u003e\u003ccode\u003e8d4d394\u003c/code\u003e\u003c/a\u003e Sidebar should not be floating on mobile (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1622\"\u003e#1622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/compare/3.0.2...3.1.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.10.0 to 4.12.1\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.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged all functions currently raising the private \u003ccode\u003eNoCurrentAsyncBackend\u003c/code\u003e exception (since v4.12.0) to instead raise the public \u003ccode\u003eNoEventLoopError\u003c/code\u003e exception (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with instance methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1042\"\u003e#1042\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003eCancelScope.cancel()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by passing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to \u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e keyword argument (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically handle all async tests (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/857\"\u003e#857\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously raised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise \u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but \u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this scenario. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\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/a0dccbd78d75886247ae7846b460fd390cc94fbd\"\u003e\u003ccode\u003ea0dccbd\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e1121a735c977c00c18b3a581d28daf83a279833\"\u003e\u003ccode\u003ee1121a7\u003c/code\u003e\u003c/a\u003e Enabled tests for the 4.12.x branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/69ab43e549517ce554f84365fed9da90e806c303\"\u003e\u003ccode\u003e69ab43e\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4f4b33ed56edd1bc4785a368a103ad8138730d91\"\u003e\u003ccode\u003e4f4b33e\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eBlockingPortal.__new__\u003c/code\u003e hack (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/af17d89b80ebbd526215e2dbd025b284730aaa3f\"\u003e\u003ccode\u003eaf17d89\u003c/code\u003e\u003c/a\u003e Replaced the NoCurrentAsyncBackend exception with NoEventLoopError (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1049\"\u003e#1049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4310264312a2e86e792481bdb05bdb381678a6b5\"\u003e\u003ccode\u003e4310264\u003c/code\u003e\u003c/a\u003e Updated pre-commit modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0cc6723ba5a2fdaa98a24852d3681c4ed99b8863\"\u003e\u003ccode\u003e0cc6723\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1051\"\u003e#1051\u003c/a\u003e)\u003c/li\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.10.0...4.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.8.3 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.08.03...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.3 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\u003c/blockquote\u003e\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\u003c/blockquote\u003e\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.3...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.2.1 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/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.10 to 3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eRead about the performance improvements here: \u003ca href=\"https://iscinumpy.dev/post/packaging-faster\"\u003ehttps://iscinumpy.dev/post/packaging-faster\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/900\"\u003epypa/packaging#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/948\"\u003epypa/packaging#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport writing metadata by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/846\"\u003epypa/packaging#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e for \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1003\"\u003epypa/packaging#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifier\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1004\"\u003epypa/packaging#1004\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/897\"\u003epypa/packaging#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/942\"\u003epypa/packaging#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/951\"\u003epypa/packaging#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version 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/pypa/packaging/pull/932\"\u003epypa/packaging#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/954\"\u003epypa/packaging#954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparsions by \u003ca href=\"https://github.com/JP-Ellis\"\u003e\u003ccode\u003e@​JP-Ellis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/939\"\u003epypa/packaging#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e by \u003ca href=\"https://github.com/dholth\"\u003e\u003ccode\u003e@​dholth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/860\"\u003epypa/packaging#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/896\"\u003epypa/packaging#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/868\"\u003epypa/packaging#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e by \u003ca href=\"https://github.com/bwoodsend\"\u003e\u003ccode\u003e@​bwoodsend\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/879\"\u003epypa/packaging#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/925\"\u003epypa/packaging#925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/833\"\u003epypa/packaging#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions 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/pypa/packaging/pull/931\"\u003epypa/packaging#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/953\"\u003epypa/packaging#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA root logger use found by ruff LOG, use \u003ccode\u003epackaging\u003c/code\u003e logger instead by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/965\"\u003epypa/packaging#965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1022\"\u003epypa/packaging#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1024\"\u003epypa/packaging#1024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1033\"\u003epypa/packaging#1033\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1019\"\u003epypa/packaging#1019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/869\"\u003epypa/packaging#869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/bearomorphism\"\u003e\u003ccode\u003e@​bearomorphism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/913\"\u003epypa/packaging#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003es in specifier comparison by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/986\"\u003epypa/packaging#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eSpecifier\u003c/code\u003e's Version by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/985\"\u003epypa/packaging#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/987\"\u003epypa/packaging#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/990\"\u003epypa/packaging#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/988\"\u003epypa/packaging#988\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1055\"\u003epypa/packaging#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/989\"\u003epypa/packaging#989\u003c/a\u003e and regression for \u003ccode\u003epackaging_legacy\u003c/code\u003e fixed by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1048\"\u003epypa/packaging#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/993\"\u003epypa/packaging#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efullmatch\u003c/code\u003e in a couple more places by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/992\"\u003epypa/packaging#992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.0 - 2026-01-20\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock (:pull:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata (:pull:\u003ccode\u003e948\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for writing metadata to a file (:pull:\u003ccode\u003e846\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e on Version (:pull:\u003ccode\u003e1003\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e1004\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e897\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e951\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version (:pull:\u003ccode\u003e932\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. (:pull:\u003ccode\u003e954\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparisons (:pull:\u003ccode\u003e939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e (:pull:\u003ccode\u003e860\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e (:pull:\u003ccode\u003e896\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e (:pull:\u003ccode\u003e868\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e (:pull:\u003ccode\u003e879\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format (:pull:\u003ccode\u003e925\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon (:pull:\u003ccode\u003e833\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions (:pull:\u003ccode\u003e931\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string (:pull:\u003ccode\u003e953\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eA root logger use found, use a \u003ccode\u003epackaging\u003c/code\u003e logger instead (:pull:\u003ccode\u003e965\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e (:pull:\u003ccode\u003e1022\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first (:pull:\u003ccode\u003e1024\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct (:pull:\u003ccode\u003e1033\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup (:pull:\u003ccode\u003e1019\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e (:pull:\u003ccode\u003e869\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e913\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003e's in specifier comparison (:pull:\u003ccode\u003e986\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache the \u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e985\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster (:pull:\u003ccode\u003e987\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup (:pull:\u003ccode\u003e990\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ for \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e988\u003c/code\u003e, :pull:\u003ccode\u003e1055\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e989\u003c/code\u003e, :pull:\u003ccode\u003e1048\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e (:pull:\u003ccode\u003e993\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ere.fullmatch\u003c/code\u003e in a couple more places (:pull:\u003ccode\u003e992\u003c/code\u003e, :pull:\u003ccode\u003e1029\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003emap\u003c/code\u003e instead of generator (:pull:\u003ccode\u003e996\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003e._version\u003c/code\u003e (\u003ccode\u003e_Version\u003c/code\u003e, a \u003ccode\u003eNamedTuple\u003c/code\u003e) (:pull:\u003ccode\u003e995\u003c/code\u003e, :pull:\u003ccode\u003e1062\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3b77a26f5a27473ad3b08194d773f325d018a2d0\"\u003e\u003ccode\u003e3b77a26\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/31371cce593d2bde0dd8c436ecfb7d53cb91cfb6\"\u003e\u003ccode\u003e31371cc\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0 final (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9627a8821f09e4c55cd6e9daadb617b67c4741c2\"\u003e\u003ccode\u003e9627a88\u003c/code\u003e\u003c/a\u003e perf: dual replace (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d5398b8bc19f3fad7b035ceb83023caf06d6e2da\"\u003e\u003ccode\u003ed5398b8\u003c/code\u003e\u003c/a\u003e fix: restore ._version as a compat shim (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3a7b600a126d237b2ad3cd7e25d2cb5c176276af\"\u003e\u003ccode\u003e3a7b600\u003c/code\u003e\u003c/a\u003e Bump for development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d4eefdccf992e963c48011875301d93df6a7f2cc\"\u003e\u003ccode\u003ed4eefdc\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/46189124fb43d8989d370902c80ab156eb83a45d\"\u003e\u003ccode\u003e4618912\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0rc3 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/0cf1b41b4b321ae08cad7d3e49cfaff5578fe813\"\u003e\u003ccode\u003e0cf1b41\u003c/code\u003e\u003c/a\u003e ci: test on first public release of CPythons (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/716beb1c0a5d7a398bf57fbd80bc2501811e616b\"\u003e\u003ccode\u003e716beb1\u003c/code\u003e\u003c/a\u003e perf:  10% faster stripping zeros (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/350a2306700b738f487f251efa278f532b263dee\"\u003e\u003ccode\u003e350a230\u003c/code\u003e\u003c/a\u003e fix: support CPython 3.11.0-3.11.4 and older PyPy3.11 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/25.0...26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `roman-numerals-py` from 3.1.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AA-Turner/roman-numerals/releases\"\u003eroman-numerals-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.1.0\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.0.0\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/AA-Turner/roman-numerals/blob/master/CHANGES.rst\"\u003eroman-numerals-py's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.1.0 (released 17 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003eAdd some debug assertions for unsafe blocks\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.0.0 (released 16 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRename Python package to \u003ccode\u003eroman-numerals\u003c/code\u003e on PyPI.\u003c/li\u003e\n\u003cli\u003ePublish \u003ccode\u003eroman-numerals-py\u003c/code\u003e as a meta-package that depends\non \u003ccode\u003eroman-numerals\u003c/code\u003e and installs no modules.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eIncrease the minimum supported Rust version (MSRV) to 1.81.0.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::error::Error\u003c/code\u003e trait for all error types.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::fmt\u003c/code\u003e traits in \u003ccode\u003eno-std\u003c/code\u003e mode.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eFrom\u0026lt;RomanNumeral\u0026gt;\u003c/code\u003e for most integer types.\u003c/li\u003e\n\u003cli\u003ePublish the \u003ccode\u003eroman-numerals-rs\u003c/code\u003e crate using \u003ccode\u003eTrusted Publishing \u0026lt;https://crates.io/docs/trusted-publishing\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/AA-Turner/roman-numerals/commit/53c9c4eac63b91728fba3c26329163ee57654d21\"\u003e\u003ccode\u003e53c9c4e\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a3793b83fab7064107ac56a482a6fa93bc9c5048\"\u003e\u003ccode\u003ea3793b8\u003c/code\u003e\u003c/a\u003e Add more SAFETY notes and debug assertions to unsafe blocks (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/106\"\u003e#106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/46d346e2d08b634856c79783e404616b65626ba7\"\u003e\u003ccode\u003e46d346e\u003c/code\u003e\u003c/a\u003e Adjust annotations in light of PEP 649\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/b8fae405d948415f7397ae4f64569c53cb623105\"\u003e\u003ccode\u003eb8fae40\u003c/code\u003e\u003c/a\u003e Adjust an example in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a88464130711ad5e8d56e6ff747d17068ae17534\"\u003e\u003ccode\u003ea884641\u003c/code\u003e\u003c/a\u003e Restore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c3e1b6b4e6e02e5e19c26dc6f72bbb7b1060cca5\"\u003e\u003ccode\u003ec3e1b6b\u003c/code\u003e\u003c/a\u003e Release v4.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c335cb63ed97e684a4e9453639bfc7e9f487bb41\"\u003e\u003ccode\u003ec335cb6\u003c/code\u003e\u003c/a\u003e Add publishing step for the \u003ccode\u003eroman-numerals-py\u003c/code\u003e meta-package (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/105\"\u003e#105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/649f6e62e7bd24123d7dd489609ae47168aaeb1b\"\u003e\u003ccode\u003e649f6e6\u003c/code\u003e\u003c/a\u003e Add Trusted Publishing workflow for crates.io (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/104\"\u003e#104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/ffa4dd1b33eae62f1bd1d44549e10a528b8f1f58\"\u003e\u003ccode\u003effa4dd1\u003c/code\u003e\u003c/a\u003e rust: Refactor tests (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/26b41561c1d9813104548777b5ed9622d7125b38\"\u003e\u003ccode\u003e26b4156\u003c/code\u003e\u003c/a\u003e Simplify ASCII detection closures (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AA-Turner/roman-numerals/compare/v3.1.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.49.1 to 0.52.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.52.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003eKludex/starlette#3109\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.52.0...0.52.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.52.0...0.52.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.0\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type safety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/HEAD/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.51.0...0.52.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.51.0...0.52.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.51.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\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/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.52.1 (January 18, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003e#3109\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.0 (January 18, 2026)\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type\nsafety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003e0.51.0 (January 10, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease warning stacklevel on \u003ccode\u003eDeprecationWarning\u003c/code\u003e for wsgi module \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3082\"\u003e#3082\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!...\n\n_Description has been truncated_","html_url":"https://github.com/freedomofpress/securedrop-workstation-docs/pull/371","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/freedomofpress%2Fsecuredrop-workstation-docs/issues/371","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/371/packages"},{"uuid":"3856426645","node_id":"PR_kwDODe0Bqc6_Y7h-","number":368,"state":"closed","title":"Bump the dependencies group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-30T18:51:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-26T15:22:55.000Z","updated_at":"2026-01-30T18:51:54.000Z","time_to_close":358137,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":16,"packages":[{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"anyio","old_version":"4.10.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2025.8.3","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"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.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"roman-numerals-py","old_version":"3.1.0","new_version":"4.1.0","repository_url":"https://github.com/AA-Turner/roman-numerals"},{"name":"starlette","old_version":"0.49.1","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.6.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `3.0.2` | `3.1.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.12.1` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `2026.1.4` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.3` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [roman-numerals-py](https://github.com/AA-Turner/roman-numerals) | `3.1.0` | `4.1.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.1` | `0.52.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.0` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.40.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n\n\nUpdates `sphinx-autobuild` from 2024.10.3 to 2025.8.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-rtd-theme` from 3.0.2 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst\"\u003esphinx-rtd-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc2:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc1:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.0.2:\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/readthedocs/sphinx_rtd_theme/commit/795de79c8b311592f5863a25307d85924bf52164\"\u003e\u003ccode\u003e795de79\u003c/code\u003e\u003c/a\u003e Release 3.1.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1676\"\u003e#1676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/66d0fdd910e142d058c20b474338051b0751f03c\"\u003e\u003ccode\u003e66d0fdd\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to the test suite (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1668\"\u003e#1668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/fbe5e6004195a1e75654eface1884485c57eb68e\"\u003e\u003ccode\u003efbe5e60\u003c/code\u003e\u003c/a\u003e 3.1.0rc2 with support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/a76174c0bb0af755718f3cbdffbf97d19d0ac0ec\"\u003e\u003ccode\u003ea76174c\u003c/code\u003e\u003c/a\u003e Add support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1671\"\u003e#1671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/20733c3bcc60df8eda23512a0f3ccb2861486110\"\u003e\u003ccode\u003e20733c3\u003c/code\u003e\u003c/a\u003e Add support for Sphinx 9.0.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1666\"\u003e#1666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/71aacd35048c8bc2ab646ed4e3e9af1075034387\"\u003e\u003ccode\u003e71aacd3\u003c/code\u003e\u003c/a\u003e Update Code of Conduct URL (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1664\"\u003e#1664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/5a263753d52c1628c88392fbf52c729f5a8e79b5\"\u003e\u003ccode\u003e5a26375\u003c/code\u003e\u003c/a\u003e Run tests and build docs with Sphinx 8.2 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1640\"\u003e#1640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/8d4d394dad2d55cf9a4db880effac6aa5c7b12e6\"\u003e\u003ccode\u003e8d4d394\u003c/code\u003e\u003c/a\u003e Sidebar should not be floating on mobile (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1622\"\u003e#1622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/compare/3.0.2...3.1.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.10.0 to 4.12.1\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.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged all functions currently raising the private \u003ccode\u003eNoCurrentAsyncBackend\u003c/code\u003e exception (since v4.12.0) to instead raise the public \u003ccode\u003eNoEventLoopError\u003c/code\u003e exception (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with instance methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1042\"\u003e#1042\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003eCancelScope.cancel()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by passing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to \u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e keyword argument (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically handle all async tests (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/857\"\u003e#857\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously raised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise \u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but \u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this scenario. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\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/a0dccbd78d75886247ae7846b460fd390cc94fbd\"\u003e\u003ccode\u003ea0dccbd\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e1121a735c977c00c18b3a581d28daf83a279833\"\u003e\u003ccode\u003ee1121a7\u003c/code\u003e\u003c/a\u003e Enabled tests for the 4.12.x branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/69ab43e549517ce554f84365fed9da90e806c303\"\u003e\u003ccode\u003e69ab43e\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4f4b33ed56edd1bc4785a368a103ad8138730d91\"\u003e\u003ccode\u003e4f4b33e\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eBlockingPortal.__new__\u003c/code\u003e hack (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/af17d89b80ebbd526215e2dbd025b284730aaa3f\"\u003e\u003ccode\u003eaf17d89\u003c/code\u003e\u003c/a\u003e Replaced the NoCurrentAsyncBackend exception with NoEventLoopError (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1049\"\u003e#1049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4310264312a2e86e792481bdb05bdb381678a6b5\"\u003e\u003ccode\u003e4310264\u003c/code\u003e\u003c/a\u003e Updated pre-commit modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0cc6723ba5a2fdaa98a24852d3681c4ed99b8863\"\u003e\u003ccode\u003e0cc6723\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1051\"\u003e#1051\u003c/a\u003e)\u003c/li\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.10.0...4.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.8.3 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.08.03...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.3 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\u003c/blockquote\u003e\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\u003c/blockquote\u003e\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.3...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.2.1 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/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.10 to 3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eRead about the performance improvements here: \u003ca href=\"https://iscinumpy.dev/post/packaging-faster\"\u003ehttps://iscinumpy.dev/post/packaging-faster\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/900\"\u003epypa/packaging#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/948\"\u003epypa/packaging#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport writing metadata by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/846\"\u003epypa/packaging#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e for \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1003\"\u003epypa/packaging#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifier\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1004\"\u003epypa/packaging#1004\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/897\"\u003epypa/packaging#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/942\"\u003epypa/packaging#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/951\"\u003epypa/packaging#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version 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/pypa/packaging/pull/932\"\u003epypa/packaging#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/954\"\u003epypa/packaging#954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparsions by \u003ca href=\"https://github.com/JP-Ellis\"\u003e\u003ccode\u003e@​JP-Ellis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/939\"\u003epypa/packaging#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e by \u003ca href=\"https://github.com/dholth\"\u003e\u003ccode\u003e@​dholth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/860\"\u003epypa/packaging#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/896\"\u003epypa/packaging#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/868\"\u003epypa/packaging#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e by \u003ca href=\"https://github.com/bwoodsend\"\u003e\u003ccode\u003e@​bwoodsend\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/879\"\u003epypa/packaging#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/925\"\u003epypa/packaging#925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/833\"\u003epypa/packaging#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions 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/pypa/packaging/pull/931\"\u003epypa/packaging#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/953\"\u003epypa/packaging#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA root logger use found by ruff LOG, use \u003ccode\u003epackaging\u003c/code\u003e logger instead by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/965\"\u003epypa/packaging#965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1022\"\u003epypa/packaging#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1024\"\u003epypa/packaging#1024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1033\"\u003epypa/packaging#1033\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1019\"\u003epypa/packaging#1019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/869\"\u003epypa/packaging#869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/bearomorphism\"\u003e\u003ccode\u003e@​bearomorphism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/913\"\u003epypa/packaging#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003es in specifier comparison by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/986\"\u003epypa/packaging#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eSpecifier\u003c/code\u003e's Version by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/985\"\u003epypa/packaging#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/987\"\u003epypa/packaging#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/990\"\u003epypa/packaging#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/988\"\u003epypa/packaging#988\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1055\"\u003epypa/packaging#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/989\"\u003epypa/packaging#989\u003c/a\u003e and regression for \u003ccode\u003epackaging_legacy\u003c/code\u003e fixed by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1048\"\u003epypa/packaging#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/993\"\u003epypa/packaging#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efullmatch\u003c/code\u003e in a couple more places by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/992\"\u003epypa/packaging#992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.0 - 2026-01-20\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock (:pull:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata (:pull:\u003ccode\u003e948\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for writing metadata to a file (:pull:\u003ccode\u003e846\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e on Version (:pull:\u003ccode\u003e1003\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e1004\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e897\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e951\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version (:pull:\u003ccode\u003e932\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. (:pull:\u003ccode\u003e954\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparisons (:pull:\u003ccode\u003e939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e (:pull:\u003ccode\u003e860\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e (:pull:\u003ccode\u003e896\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e (:pull:\u003ccode\u003e868\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e (:pull:\u003ccode\u003e879\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format (:pull:\u003ccode\u003e925\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon (:pull:\u003ccode\u003e833\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions (:pull:\u003ccode\u003e931\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string (:pull:\u003ccode\u003e953\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eA root logger use found, use a \u003ccode\u003epackaging\u003c/code\u003e logger instead (:pull:\u003ccode\u003e965\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e (:pull:\u003ccode\u003e1022\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first (:pull:\u003ccode\u003e1024\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct (:pull:\u003ccode\u003e1033\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup (:pull:\u003ccode\u003e1019\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e (:pull:\u003ccode\u003e869\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e913\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003e's in specifier comparison (:pull:\u003ccode\u003e986\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache the \u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e985\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster (:pull:\u003ccode\u003e987\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup (:pull:\u003ccode\u003e990\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ for \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e988\u003c/code\u003e, :pull:\u003ccode\u003e1055\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e989\u003c/code\u003e, :pull:\u003ccode\u003e1048\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e (:pull:\u003ccode\u003e993\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ere.fullmatch\u003c/code\u003e in a couple more places (:pull:\u003ccode\u003e992\u003c/code\u003e, :pull:\u003ccode\u003e1029\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003emap\u003c/code\u003e instead of generator (:pull:\u003ccode\u003e996\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003e._version\u003c/code\u003e (\u003ccode\u003e_Version\u003c/code\u003e, a \u003ccode\u003eNamedTuple\u003c/code\u003e) (:pull:\u003ccode\u003e995\u003c/code\u003e, :pull:\u003ccode\u003e1062\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3b77a26f5a27473ad3b08194d773f325d018a2d0\"\u003e\u003ccode\u003e3b77a26\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/31371cce593d2bde0dd8c436ecfb7d53cb91cfb6\"\u003e\u003ccode\u003e31371cc\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0 final (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9627a8821f09e4c55cd6e9daadb617b67c4741c2\"\u003e\u003ccode\u003e9627a88\u003c/code\u003e\u003c/a\u003e perf: dual replace (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d5398b8bc19f3fad7b035ceb83023caf06d6e2da\"\u003e\u003ccode\u003ed5398b8\u003c/code\u003e\u003c/a\u003e fix: restore ._version as a compat shim (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3a7b600a126d237b2ad3cd7e25d2cb5c176276af\"\u003e\u003ccode\u003e3a7b600\u003c/code\u003e\u003c/a\u003e Bump for development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d4eefdccf992e963c48011875301d93df6a7f2cc\"\u003e\u003ccode\u003ed4eefdc\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/46189124fb43d8989d370902c80ab156eb83a45d\"\u003e\u003ccode\u003e4618912\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0rc3 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/0cf1b41b4b321ae08cad7d3e49cfaff5578fe813\"\u003e\u003ccode\u003e0cf1b41\u003c/code\u003e\u003c/a\u003e ci: test on first public release of CPythons (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/716beb1c0a5d7a398bf57fbd80bc2501811e616b\"\u003e\u003ccode\u003e716beb1\u003c/code\u003e\u003c/a\u003e perf:  10% faster stripping zeros (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/350a2306700b738f487f251efa278f532b263dee\"\u003e\u003ccode\u003e350a230\u003c/code\u003e\u003c/a\u003e fix: support CPython 3.11.0-3.11.4 and older PyPy3.11 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/25.0...26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `roman-numerals-py` from 3.1.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AA-Turner/roman-numerals/releases\"\u003eroman-numerals-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.1.0\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.0.0\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/AA-Turner/roman-numerals/blob/master/CHANGES.rst\"\u003eroman-numerals-py's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.1.0 (released 17 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003eAdd some debug assertions for unsafe blocks\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.0.0 (released 16 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRename Python package to \u003ccode\u003eroman-numerals\u003c/code\u003e on PyPI.\u003c/li\u003e\n\u003cli\u003ePublish \u003ccode\u003eroman-numerals-py\u003c/code\u003e as a meta-package that depends\non \u003ccode\u003eroman-numerals\u003c/code\u003e and installs no modules.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eIncrease the minimum supported Rust version (MSRV) to 1.81.0.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::error::Error\u003c/code\u003e trait for all error types.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::fmt\u003c/code\u003e traits in \u003ccode\u003eno-std\u003c/code\u003e mode.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eFrom\u0026lt;RomanNumeral\u0026gt;\u003c/code\u003e for most integer types.\u003c/li\u003e\n\u003cli\u003ePublish the \u003ccode\u003eroman-numerals-rs\u003c/code\u003e crate using \u003ccode\u003eTrusted Publishing \u0026lt;https://crates.io/docs/trusted-publishing\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/AA-Turner/roman-numerals/commit/53c9c4eac63b91728fba3c26329163ee57654d21\"\u003e\u003ccode\u003e53c9c4e\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a3793b83fab7064107ac56a482a6fa93bc9c5048\"\u003e\u003ccode\u003ea3793b8\u003c/code\u003e\u003c/a\u003e Add more SAFETY notes and debug assertions to unsafe blocks (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/106\"\u003e#106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/46d346e2d08b634856c79783e404616b65626ba7\"\u003e\u003ccode\u003e46d346e\u003c/code\u003e\u003c/a\u003e Adjust annotations in light of PEP 649\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/b8fae405d948415f7397ae4f64569c53cb623105\"\u003e\u003ccode\u003eb8fae40\u003c/code\u003e\u003c/a\u003e Adjust an example in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a88464130711ad5e8d56e6ff747d17068ae17534\"\u003e\u003ccode\u003ea884641\u003c/code\u003e\u003c/a\u003e Restore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c3e1b6b4e6e02e5e19c26dc6f72bbb7b1060cca5\"\u003e\u003ccode\u003ec3e1b6b\u003c/code\u003e\u003c/a\u003e Release v4.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c335cb63ed97e684a4e9453639bfc7e9f487bb41\"\u003e\u003ccode\u003ec335cb6\u003c/code\u003e\u003c/a\u003e Add publishing step for the \u003ccode\u003eroman-numerals-py\u003c/code\u003e meta-package (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/105\"\u003e#105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/649f6e62e7bd24123d7dd489609ae47168aaeb1b\"\u003e\u003ccode\u003e649f6e6\u003c/code\u003e\u003c/a\u003e Add Trusted Publishing workflow for crates.io (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/104\"\u003e#104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/ffa4dd1b33eae62f1bd1d44549e10a528b8f1f58\"\u003e\u003ccode\u003effa4dd1\u003c/code\u003e\u003c/a\u003e rust: Refactor tests (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/26b41561c1d9813104548777b5ed9622d7125b38\"\u003e\u003ccode\u003e26b4156\u003c/code\u003e\u003c/a\u003e Simplify ASCII detection closures (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AA-Turner/roman-numerals/compare/v3.1.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.49.1 to 0.52.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.52.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003eKludex/starlette#3109\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.52.0...0.52.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.52.0...0.52.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.0\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type safety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/HEAD/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.51.0...0.52.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.51.0...0.52.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.51.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\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/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.52.1 (January 18, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003e#3109\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.0 (January 18, 2026)\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type\nsafety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003e0.51.0 (January 10, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease warning stacklevel on \u003ccode\u003eDeprecationWarning\u003c/code\u003e for wsgi module \u003ca href=\"https://re...\n\n_Description has been truncated_","html_url":"https://github.com/freedomofpress/securedrop-workstation-docs/pull/368","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/freedomofpress%2Fsecuredrop-workstation-docs/issues/368","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/368/packages"},{"uuid":"3854485334","node_id":"PR_kwDOMftbFc6_Sm3X","number":190,"state":"closed","title":"Bump the py-updates group across 1 directory with 83 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-02T04:30:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-26T04:37:31.000Z","updated_at":"2026-02-02T04:30:53.000Z","time_to_close":604401,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"py-updates","update_count":83,"packages":[{"name":"awscli","old_version":"1.40.17","new_version":"1.44.24","repository_url":"https://github.com/aws/aws-cli"},{"name":"polars","old_version":"1.28.1","new_version":"1.37.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"requests","old_version":"2.32.3","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"biopython","old_version":"1.85","new_version":"1.86","repository_url":"https://github.com/biopython/biopython"},{"name":"boto3","old_version":"1.38.18","new_version":"1.42.34","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.38.18","new_version":"1.42.34","repository_url":"https://github.com/boto/botocore"},{"name":"certifi","old_version":"2025.4.26","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"cloudpathlib","old_version":"0.21.1","new_version":"0.23.0","repository_url":"https://github.com/drivendataorg/cloudpathlib"},{"name":"docutils","old_version":"0.19","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"markdown-it-py","old_version":"3.0.0","new_version":"4.0.0","repository_url":"https://github.com/executablebooks/markdown-it-py"},{"name":"numpy","old_version":"2.2.5","new_version":"2.4.1","repository_url":"https://github.com/numpy/numpy"},{"name":"pandas","old_version":"2.2.3","new_version":"3.0.0","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pyarrow","old_version":"20.0.0","new_version":"23.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"pyasn1","old_version":"0.6.1","new_version":"0.6.2","repository_url":"https://github.com/pyasn1/pyasn1"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"rich","old_version":"14.0.0","new_version":"14.3.1","repository_url":"https://github.com/Textualize/rich"},{"name":"rsa","old_version":"4.7.2","new_version":"4.9.1","repository_url":"https://github.com/sybrenstuvel/python-rsa"},{"name":"s3transfer","old_version":"0.12.0","new_version":"0.16.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"structlog","old_version":"25.3.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"tzdata","old_version":"2025.2","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"},{"name":"boto3-stubs","old_version":"1.38.18","new_version":"1.42.34","repository_url":"https://github.com/youtype/mypy_boto3_builder"},{"name":"botocore-stubs","old_version":"1.38.18","new_version":"1.42.34","repository_url":"https://github.com/youtype/botocore-stubs"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"coverage","old_version":"7.8.0","new_version":"7.13.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cryptography","old_version":"44.0.3","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"freezegun","old_version":"1.5.1","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"iniconfig","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"moto","old_version":"5.1.4","new_version":"5.1.20","repository_url":"https://github.com/getmoto/moto"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"mypy-boto3-s3","old_version":"1.38.0","new_version":"1.42.21","repository_url":"https://github.com/youtype/mypy_boto3_builder"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pycparser","old_version":"2.22","new_version":"3.0","repository_url":"https://github.com/eliben/pycparser"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"responses","old_version":"0.25.7","new_version":"0.25.8","repository_url":"https://github.com/getsentry/responses"},{"name":"ruff","old_version":"0.11.10","new_version":"0.14.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-awscrt","old_version":"0.27.2","new_version":"0.31.1","repository_url":"https://github.com/youtype/types-awscrt"},{"name":"types-requests","old_version":"2.32.0.20250515","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-s3transfer","old_version":"0.12.0","new_version":"0.16.0","repository_url":"https://github.com/youtype/types-s3transfer"},{"name":"typing-extensions","old_version":"4.13.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"xmltodict","old_version":"0.14.2","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"alabaster","old_version":"0.7.16","new_version":"1.0.0","repository_url":"https://github.com/sphinx-doc/alabaster"},{"name":"anyio","old_version":"4.9.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.3"},{"name":"cachecontrol","old_version":"0.14.3","new_version":"0.14.4","repository_url":"https://github.com/psf/cachecontrol"},{"name":"click","old_version":"8.2.0","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":"filelock","old_version":"3.18.0","new_version":"3.20.3","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.58.0","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"furo","old_version":"2024.8.6","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"kiwisolver","old_version":"1.4.8","new_version":"1.4.9","repository_url":"https://github.com/nucleic/kiwi"},{"name":"matplotlib","old_version":"3.10.3","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mdit-py-plugins","old_version":"0.4.2","new_version":"0.5.0","repository_url":"https://github.com/executablebooks/mdit-py-plugins"},{"name":"more-itertools","old_version":"10.7.0","new_version":"10.8.0","repository_url":"https://github.com/more-itertools/more-itertools"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.1.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"myst-parser","old_version":"4.0.1","new_version":"5.0.0","repository_url":"https://github.com/executablebooks/MyST-Parser"},{"name":"pillow","old_version":"11.2.1","new_version":"12.1.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"ruamel-yaml","old_version":"0.18.10","new_version":"0.19.1"},{"name":"ruamel-yaml-clib","old_version":"0.2.12","new_version":"0.2.15"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8.3","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"sphinx","old_version":"7.3.7","new_version":"9.0.4","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-autodoc-typehints","old_version":"2.3.0","new_version":"3.6.1","repository_url":"https://github.com/tox-dev/sphinx-autodoc-typehints"},{"name":"sphinx-jinja2-compat","old_version":"0.3.0","new_version":"0.4.1","repository_url":"https://github.com/sphinx-toolbox/sphinx-jinja2-compat"},{"name":"sphinx-prompt","old_version":"1.8.0","new_version":"1.10.2","repository_url":"https://github.com/sbrunner/sphinx-prompt"},{"name":"sphinx-tabs","old_version":"3.4.5","new_version":"3.4.7","repository_url":"https://github.com/executablebooks/sphinx-tabs"},{"name":"sphinx-toolbox","old_version":"4.0.0","new_version":"4.1.2","repository_url":"https://github.com/sphinx-toolbox/sphinx-toolbox"},{"name":"sphinxext-opengraph","old_version":"0.10.0","new_version":"0.13.0","repository_url":"https://github.com/sphinx-doc/sphinxext-opengraph"},{"name":"starlette","old_version":"0.46.2","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"uvicorn","old_version":"0.34.2","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.0.5","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"}],"path":null,"ecosystem":"pip"},"body":"Bumps the py-updates group with 83 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [awscli](https://github.com/aws/aws-cli) | `1.40.17` | `1.44.24` |\n| [polars](https://github.com/pola-rs/polars) | `1.28.1` | `1.37.1` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.32.5` |\n| [biopython](https://github.com/biopython/biopython) | `1.85` | `1.86` |\n| [boto3](https://github.com/boto/boto3) | `1.38.18` | `1.42.34` |\n| [botocore](https://github.com/boto/botocore) | `1.38.18` | `1.42.34` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.4.26` | `2026.1.4` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.4` |\n| [cloudpathlib](https://github.com/drivendataorg/cloudpathlib) | `0.21.1` | `0.23.0` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.19` | `0.22.4` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `3.0.0` | `4.0.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.2.5` | `2.4.1` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `3.0.0` |\n| [pyarrow](https://github.com/apache/arrow) | `20.0.0` | `23.0.0` |\n| [pyasn1](https://github.com/pyasn1/pyasn1) | `0.6.1` | `0.6.2` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.3.1` |\n| [rsa](https://github.com/sybrenstuvel/python-rsa) | `4.7.2` | `4.9.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.12.0` | `0.16.0` |\n| [structlog](https://github.com/hynek/structlog) | `25.3.0` | `25.5.0` |\n| [tzdata](https://github.com/python/tzdata) | `2025.2` | `2025.3` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.6.3` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n| [boto3-stubs](https://github.com/youtype/mypy_boto3_builder) | `1.38.18` | `1.42.34` |\n| [botocore-stubs](https://github.com/youtype/botocore-stubs) | `1.38.18` | `1.42.34` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.8.0` | `7.13.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.3` | `46.0.3` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.5.1` | `1.5.5` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [moto](https://github.com/getmoto/moto) | `5.1.4` | `5.1.20` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [mypy-boto3-s3](https://github.com/youtype/mypy_boto3_builder) | `1.38.0` | `1.42.21` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [responses](https://github.com/getsentry/responses) | `0.25.7` | `0.25.8` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.10` | `0.14.14` |\n| [types-awscrt](https://github.com/youtype/types-awscrt) | `0.27.2` | `0.31.1` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20250515` | `2.32.4.20260107` |\n| [types-s3transfer](https://github.com/youtype/types-s3transfer) | `0.12.0` | `0.16.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.13.2` | `4.15.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.14.2` | `1.0.2` |\n| [alabaster](https://github.com/sphinx-doc/alabaster) | `0.7.16` | `1.0.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.12.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.3` |\n| [cachecontrol](https://github.com/psf/cachecontrol) | `0.14.3` | `0.14.4` |\n| [click](https://github.com/pallets/click) | `8.2.0` | `8.3.1` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.20.3` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.58.0` | `4.61.1` |\n| [furo](https://github.com/pradyunsg/furo) | `2024.8.6` | `2025.12.19` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.8` | `1.4.9` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.3` | `3.10.8` |\n| [mdit-py-plugins](https://github.com/executablebooks/mdit-py-plugins) | `0.4.2` | `0.5.0` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.7.0` | `10.8.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.1.2` |\n| [myst-parser](https://github.com/executablebooks/MyST-Parser) | `4.0.1` | `5.0.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.1.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.5.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.3.2` |\n| ruamel-yaml | `0.18.10` | `0.19.1` |\n| ruamel-yaml-clib | `0.2.12` | `0.2.15` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8.3` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.3.7` | `9.0.4` |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-autodoc-typehints](https://github.com/tox-dev/sphinx-autodoc-typehints) | `2.3.0` | `3.6.1` |\n| [sphinx-jinja2-compat](https://github.com/sphinx-toolbox/sphinx-jinja2-compat) | `0.3.0` | `0.4.1` |\n| [sphinx-prompt](https://github.com/sbrunner/sphinx-prompt) | `1.8.0` | `1.10.2` |\n| [sphinx-tabs](https://github.com/executablebooks/sphinx-tabs) | `3.4.5` | `3.4.7` |\n| [sphinx-toolbox](https://github.com/sphinx-toolbox/sphinx-toolbox) | `4.0.0` | `4.1.2` |\n| [sphinxext-opengraph](https://github.com/sphinx-doc/sphinxext-opengraph) | `0.10.0` | `0.13.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.46.2` | `0.52.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.2` | `0.40.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.0.5` | `1.1.1` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n\n\nUpdates `awscli` from 1.40.17 to 1.44.24\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/3af1873c23374171e0bc9a6891a361221178fd8d\"\u003e\u003ccode\u003e3af1873\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.24'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/3db4f00603a7e7a76ffc0838593db9656e72799e\"\u003e\u003ccode\u003e3db4f00\u003c/code\u003e\u003c/a\u003e Bumping version to 1.44.24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/2c19a9fcf0f35398a280868073b4170c02f4ef5a\"\u003e\u003ccode\u003e2c19a9f\u003c/code\u003e\u003c/a\u003e Update changelog based on model updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/80d79654015909384fe93f268867f5dec1e58705\"\u003e\u003ccode\u003e80d7965\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.23'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/75d1e11e5a5e06d8dcc5637ea26091874275eb99\"\u003e\u003ccode\u003e75d1e11\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.23' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/a220ab958493ad5a52289d964546d66538ee7711\"\u003e\u003ccode\u003ea220ab9\u003c/code\u003e\u003c/a\u003e Bumping version to 1.44.23\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/c48c8ab1a19bdf5f8b3510e9948016443eb7d2e0\"\u003e\u003ccode\u003ec48c8ab\u003c/code\u003e\u003c/a\u003e Update changelog based on model updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/39e70dfeaa3a5dad7c8c49d08c64b79bc299c58c\"\u003e\u003ccode\u003e39e70df\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.22'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/094e6fa721d66f284e1466e758e32120b8594ab7\"\u003e\u003ccode\u003e094e6fa\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.22' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/4cd22ade79f67568ad66b6d406882dcd02a6fa6c\"\u003e\u003ccode\u003e4cd22ad\u003c/code\u003e\u003c/a\u003e Bumping version to 1.44.22\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aws/aws-cli/compare/1.40.17...1.44.24\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `polars` from 1.28.1 to 1.37.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pola-rs/polars/releases\"\u003epolars's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePython Polars 1.37.1\u003c/h2\u003e\n\u003ch2\u003e🚀 Performance improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up \u003ccode\u003eSQL\u003c/code\u003e interface \u0026quot;UNION\u0026quot; clauses (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26039\"\u003e#26039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize slicing support on compressed IPC (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26071\"\u003e#26071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCPU check for musl builds (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26076\"\u003e#26076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate C Stream import errors instead of panicking (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26036\"\u003e#26036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix slicing on compressed IPC (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26066\"\u003e#26066\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📖 Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eClarify min_by/max_by behavior on ties (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26077\"\u003e#26077\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠️ Other improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMark top slow normal tests as slow (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26080\"\u003e#26080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate breaking deps (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26055\"\u003e#26055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix for upstream url bug and update deps (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26052\"\u003e#26052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly pin chrono (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26051\"\u003e#26051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't run rust doctests (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26046\"\u003e#26046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate deps (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26042\"\u003e#26042\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIgnore very slow test (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26041\"\u003e#26041\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThank you to all our contributors for making this release possible!\n\u003ca href=\"https://github.com/Voultapher\"\u003e\u003ccode\u003e@​Voultapher\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/alexander-beedie\"\u003e\u003ccode\u003e@​alexander-beedie\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/kdn36\"\u003e\u003ccode\u003e@​kdn36\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nameexhaustion\"\u003e\u003ccode\u003e@​nameexhaustion\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/orlp\"\u003e\u003ccode\u003e@​orlp\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ritchie46\"\u003e\u003ccode\u003e@​ritchie46\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/wtn\"\u003e\u003ccode\u003e@​wtn\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ePython Polars 1.37.0\u003c/h2\u003e\n\u003ch2\u003e🚀 Performance improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up \u003ccode\u003eSQL\u003c/code\u003e interface \u0026quot;ORDER BY\u0026quot; clauses (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26037\"\u003e#26037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd fast kernel for is_nan and use it for numpy NaN-\u0026gt;null conversion (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26034\"\u003e#26034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize ArrayFromIter implementations for ObjectArray (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25712\"\u003e#25712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew streaming NDJSON sink pipeline (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25948\"\u003e#25948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew streaming CSV sink pipeline (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25900\"\u003e#25900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDispatch partitioned usage of \u003ccode\u003esink_*\u003c/code\u003e functions to new-streaming by default (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25910\"\u003e#25910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace ryu with faster zmij (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25885\"\u003e#25885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce memory usage for .item() count in grouped first/last (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25787\"\u003e#25787\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip schema inference if schema provided for \u003ccode\u003escan_csv/ndjson\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25757\"\u003e#25757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd width-aware chunking to prevent degradation with wide data (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25764\"\u003e#25764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse new sink pipeline for write/sink_ipc (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25746\"\u003e#25746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce memory usage when scanning multiple parquet files in streaming (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25747\"\u003e#25747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't call cluster_with_columns optimization if not needed (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25724\"\u003e#25724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e✨ Enhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new \u003ccode\u003epl.PartitionBy\u003c/code\u003e API (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26004\"\u003e#26004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eArrowStreamExportable and sink_delta (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25994\"\u003e#25994\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/pola-rs/polars/commit/bb79993c3aa91d0db7d20be8f75c8075cad97067\"\u003e\u003ccode\u003ebb79993\u003c/code\u003e\u003c/a\u003e Python Polars 1.37.1 (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26078\"\u003e#26078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/26a9d097af5ea7d35f72bb8514ab990ddbce4796\"\u003e\u003ccode\u003e26a9d09\u003c/code\u003e\u003c/a\u003e chore: Mark top slow normal tests as slow (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26080\"\u003e#26080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/451f247ba33506c9822478d0409a5075fec5797c\"\u003e\u003ccode\u003e451f247\u003c/code\u003e\u003c/a\u003e refactor(rust): Simplify \u003ccode\u003ePlPath\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26053\"\u003e#26053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/b532aad910b0fe065b9fbe648944f3a580d3d104\"\u003e\u003ccode\u003eb532aad\u003c/code\u003e\u003c/a\u003e docs: Clarify min_by/max_by behavior on ties (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26077\"\u003e#26077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/707796731ab7cf51f296a9b56a0231a5537e4259\"\u003e\u003ccode\u003e7077967\u003c/code\u003e\u003c/a\u003e fix: Optimize slicing support on compressed IPC (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26071\"\u003e#26071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/44c139746390a0b81b3e908a8a6529cc6efdea1e\"\u003e\u003ccode\u003e44c1397\u003c/code\u003e\u003c/a\u003e fix: CPU check for musl builds (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26076\"\u003e#26076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/35ec39865a1952f60f46d17e461974881844b9c1\"\u003e\u003ccode\u003e35ec398\u003c/code\u003e\u003c/a\u003e chore: Update breaking deps (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26055\"\u003e#26055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/84fa66381626dbd826e2d5a663285fb193356d64\"\u003e\u003ccode\u003e84fa663\u003c/code\u003e\u003c/a\u003e fix(python): Propagate C Stream import errors instead of panicking (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26036\"\u003e#26036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/e9e20e468cb84f966eed1e37a7b23afaf842e88f\"\u003e\u003ccode\u003ee9e20e4\u003c/code\u003e\u003c/a\u003e fix: Fix slicing on compressed IPC (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26066\"\u003e#26066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/b0fdbd34d430d934bda9a4ca3f75e136223bd95b\"\u003e\u003ccode\u003eb0fdbd3\u003c/code\u003e\u003c/a\u003e chore: Fix for upstream url bug and update deps (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26052\"\u003e#26052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pola-rs/polars/compare/py-1.28.1...py-1.37.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.32.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6965\"\u003e#6965\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS.\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `biopython` from 1.85 to 1.86\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/biopython/biopython/blob/master/NEWS.rst\"\u003ebiopython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e28 October 2025: Biopython 1.86\u003c/h1\u003e\n\u003cp\u003eThis release of Biopython supports Python 3.10, 3.11, 3.12, 3.13 and 3.14.  It\nhas also been tested on PyPy3.10 v7.3.19.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.SearchIO\u003c/code\u003e now supports parsing the tabular and plain text output of\n\u003ccode\u003eInfernal \u0026lt;http://eddylab.org/infernal/\u0026gt;\u003c/code\u003e (v1.0.0+) RNA search tool. The\nformat names are \u003ccode\u003einfernal-tab\u003c/code\u003e and \u003ccode\u003einfernal-text\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe default value of the gap score of a \u003ccode\u003ePairwiseAligner\u003c/code\u003e object was changed\nin this release.  Previously, for consistency with \u003ccode\u003eBio.pairwise2\u003c/code\u003e, the\ndefault value for gap score was 0.  However, this means that a mismatch, an\ninsertion followed by a deletion, and a deletion followed by an insertion all\nget assigned a score of 0.  The aligner then finds a large number of alignments\nthat are logically the same, but have trivial differences between them.  For\nexample, aligning AAACAAA to AAAGAAA previously yielded the following three\nalignments, all with score 6::\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e AAACAAA        AAAC-AAA        AAA-CAAA\n AAAGAAA        AAA-GAAA        AAAG-AAA\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eWith the new default parameter for the gap score, only the first alignment is\nreturned.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.PDB.PDBIO\u003c/code\u003e now ensures that b-factor values are always at most 6 characters to\nensure that we do not violate the wwPDB specification. This should not have an impact\non the majority of uses, as b-factor values are generally small (less than 100). When\n1000 \u0026lt;= b-factor \u0026lt; 10_000, the value is rounded to a single decimal place. When,\n10_000 \u0026lt;= b-factor \u0026lt; 999_999, the value is rounded to zero decimal places. Values\nabove 999_999 are now clamped. The justification for this is the rise in the b-factor\nfield being used for additional metadata, typically from computational tools.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.Align\u003c/code\u003e now provides a method \u003ccode\u003eAlignment.from_alignments_with_same_reference\u003c/code\u003e\nto construct a multiple sequence alignment from a collection of alignments\nthat share the same reference sequence.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.PDB.PDBIO\u003c/code\u003e will now raise module specific warnings:\n\u003ccode\u003eBio.PDB.PDBExceptions.PDBIOWarning\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.PDB.SCADIO\u003c/code\u003e now supports object selection by color in the OpenSCAD\noutput file.  This enables generation of separate STL files for each color for\nprinting protein structures on multi-material 3D printers.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eiplotx\u003c/code\u003e library is mentioned in the Tutorial as an option to visualise\ntrees using complex style options.\u003c/p\u003e\n\u003cp\u003eMany thanks to the Biopython developers and community for making this release\npossible, especially the following contributors:\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\u003eSee full diff in \u003ca href=\"https://github.com/biopython/biopython/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.38.18 to 1.42.34\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/9a285e6beab78c1f4c97047674ec09ac5451c4d1\"\u003e\u003ccode\u003e9a285e6\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.34'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/29574158e22c3b2d6ca044eef1dc054d28d73485\"\u003e\u003ccode\u003e2957415\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.34\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/8e1fd2e6e5c1fd6236cacf2dc9064d55d8baf07b\"\u003e\u003ccode\u003e8e1fd2e\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/9cadce52dae6e58e450a9ac0745a721dda8a4044\"\u003e\u003ccode\u003e9cadce5\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.33'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/ee24f15c3013be4f4c6e76bfbc948b910e6f8f35\"\u003e\u003ccode\u003eee24f15\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.33' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/b0f2cf318d9bef8eaf3f11cd81b22ce67810ea82\"\u003e\u003ccode\u003eb0f2cf3\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.33\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/6e690ed2966406d4b53532a44e70c93370368ae6\"\u003e\u003ccode\u003e6e690ed\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/b84ec5ebd8880b77e998bfdd28984f214c3f1fa3\"\u003e\u003ccode\u003eb84ec5e\u003c/code\u003e\u003c/a\u003e Add BOTOCORE_TCP_KEEPALIVE environment variable documentation (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4705\"\u003e#4705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/36cebd34052db2fc7449b85ac04f903fb40f8b2f\"\u003e\u003ccode\u003e36cebd3\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.32'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/d4d10440677e98c5c15fb6c84cc605bd7401fd74\"\u003e\u003ccode\u003ed4d1044\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.32' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.38.18...1.42.34\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `botocore` from 1.38.18 to 1.42.34\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/d52e6ce4372810dc3a0d6701b366f54add0aedae\"\u003e\u003ccode\u003ed52e6ce\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.34'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/fce5268f1cd4063f30e3faec44da7efa309cae5f\"\u003e\u003ccode\u003efce5268\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.34\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/45e43f9baa8c57d13eb75d7566f1401366a1a188\"\u003e\u003ccode\u003e45e43f9\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/b9ed58fa2f31170724538f6ed86e8cbf833de8fd\"\u003e\u003ccode\u003eb9ed58f\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.33'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/48062d233b8173af5af60afb85443e04c6520146\"\u003e\u003ccode\u003e48062d2\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.33' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/8eb5ab6cd38ba8d94d938fac2e6086bd918760dc\"\u003e\u003ccode\u003e8eb5ab6\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.33\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/05b651e910c4b59a971a2566afb4b82a51fb00fc\"\u003e\u003ccode\u003e05b651e\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/aba67690e5aa14f58083dfa168d7fc09681c884a\"\u003e\u003ccode\u003eaba6769\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/3549e0136b656df25e985bdb85233f95da5851d3\"\u003e\u003ccode\u003e3549e01\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.32'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/0847d5e023fd0f7d0e19a154ee22a46e8f56bc38\"\u003e\u003ccode\u003e0847d5e\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.32' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.38.18...1.42.34\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.4.26 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.04.26...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cloudpathlib` from 0.21.1 to 0.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/drivendataorg/cloudpathlib/releases\"\u003ecloudpathlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14 (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/529\"\u003e#529\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/530\"\u003e#530\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eChanged \u003ccode\u003eCloudPath.copy\u003c/code\u003e to have the first parameter named \u003ccode\u003etarget\u003c/code\u003e instead of \u003ccode\u003edestination\u003c/code\u003e and added new \u003ccode\u003efollow_symlinks\u003c/code\u003e and \u003ccode\u003epreserve_metadata\u003c/code\u003e kwargs. \u003cstrong\u003eBreaking change for users that relied on the first parameter being named \u003ccode\u003edestination\u003c/code\u003e instead of \u003ccode\u003etarget\u003c/code\u003e.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.copy_into\u003c/code\u003e to copy a file or directory into another file or directory.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.move\u003c/code\u003e to move a file or directory to another location.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.move_into\u003c/code\u003e to move a file or directory into another file or directory.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPathInfo\u003c/code\u003e and \u003ccode\u003eCloudPath.info\u003c/code\u003e to get information about a file or directory.\u003c/li\u003e\n\u003cli\u003eAdded additional no-op kwargs to \u003ccode\u003emkdir\u003c/code\u003e, \u003ccode\u003etouch\u003c/code\u003e, \u003ccode\u003eglob\u003c/code\u003e, \u003ccode\u003erglob\u003c/code\u003e, \u003ccode\u003estat\u003c/code\u003e to match pathlib.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue with GS credentials, using default auth enables a wider set of authentication methods in GS (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/390\"\u003e#390\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/514\"\u003e#514\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ljyanesm\"\u003e\u003ccode\u003e@​ljyanesm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for http(s) urls with \u003ccode\u003eHttpClient\u003c/code\u003e, \u003ccode\u003eHttpPath\u003c/code\u003e, \u003ccode\u003eHttpsClient\u003c/code\u003e, and \u003ccode\u003eHttpsPath\u003c/code\u003e. (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/455\"\u003e#455\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded experimental support for patching the builtins \u003ccode\u003eopen\u003c/code\u003e, \u003ccode\u003eos\u003c/code\u003e, \u003ccode\u003eos.path\u003c/code\u003e, and \u003ccode\u003eglob\u003c/code\u003e to work with \u003ccode\u003eCloudPath\u003c/code\u003e objects. It is off by default; see the new \u0026quot;Compatibility\u0026quot; section in the docs for more information. (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/128\"\u003e#128\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/322\"\u003e#322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eCloudPath(*parts)\u003c/code\u003e to create a \u003ccode\u003eCloudPath\u003c/code\u003e object from a list of parts (to match \u003ccode\u003epathlib.Path\u003c/code\u003e). \u003cstrong\u003eThis is a potentially breaking change for users that relied on the second arg being the \u003ccode\u003eclient\u003c/code\u003e instead of making it an explicit kwarg.\u003c/strong\u003e (PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/322\"\u003e#322\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/drivendataorg/cloudpathlib/blob/master/HISTORY.md\"\u003ecloudpathlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.23.0 (2025-10-07)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14 (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/529\"\u003e#529\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/530\"\u003e#530\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eChanged \u003ccode\u003eCloudPath.copy\u003c/code\u003e to have the first parameter named \u003ccode\u003etarget\u003c/code\u003e instead of \u003ccode\u003edestination\u003c/code\u003e and added new \u003ccode\u003efollow_symlinks\u003c/code\u003e and \u003ccode\u003epreserve_metadata\u003c/code\u003e kwargs. \u003cstrong\u003eBreaking change for users that relied on the first parameter being named \u003ccode\u003edestination\u003c/code\u003e instead of \u003ccode\u003etarget\u003c/code\u003e.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.copy_into\u003c/code\u003e to copy a file or directory into another file or directory.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.move\u003c/code\u003e to move a file or directory to another location.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.move_into\u003c/code\u003e to move a file or directory into another file or directory.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPathInfo\u003c/code\u003e and \u003ccode\u003eCloudPath.info\u003c/code\u003e to get information about a file or directory.\u003c/li\u003e\n\u003cli\u003eAdded additional no-op kwargs to \u003ccode\u003emkdir\u003c/code\u003e, \u003ccode\u003etouch\u003c/code\u003e, \u003ccode\u003eglob\u003c/code\u003e, \u003ccode\u003erglob\u003c/code\u003e, \u003ccode\u003estat\u003c/code\u003e to match pathlib.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.22.0 (2025-08-29)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue with GS credentials, using default auth enables a wider set of authentication methods in GS (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/390\"\u003e#390\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/514\"\u003e#514\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ljyanesm\"\u003e\u003ccode\u003e@​ljyanesm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for http(s) urls with \u003ccode\u003eHttpClient\u003c/code\u003e, \u003ccode\u003eHttpPath\u003c/code\u003e, \u003ccode\u003eHttpsClient\u003c/code\u003e, and \u003ccode\u003eHttpsPath\u003c/code\u003e. (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/455\"\u003e#455\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded experimental support for patching the builtins \u003ccode\u003eopen\u003c/code\u003e, \u003ccode\u003eos\u003c/code\u003e, \u003ccode\u003eos.path\u003c/code\u003e, and \u003ccode\u003eglob\u003c/code\u003e to work with \u003ccode\u003eCloudPath\u003c/code\u003e objects. It is off by default; see the new \u0026quot;Compatibility\u0026quot; section in the docs for more information. (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/128\"\u003e#128\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/322\"\u003e#322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eCloudPath(*parts)\u003c/code\u003e to create a \u003ccode\u003eCloudPath\u003c/code\u003e object from a list of parts (to match \u003ccode\u003epathlib.Path\u003c/code\u003e). \u003cstrong\u003eThis is a potentially breaking change for users that relied on the second arg being the \u003ccode\u003eclient\u003c/code\u003e instead of making it an explicit kwarg.\u003c/strong\u003e (PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/322\"\u003e#322\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/drivendataorg/cloudpathlib/commit/28f1d943078517262d045ae50136edf27a5298a1\"\u003e\u003ccode\u003e28f1d94\u003c/code\u003e\u003c/a\u003e WIP Support 3.14 (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/fec5918d6725e9f1f52bee003528f4f854454980\"\u003e\u003ccode\u003efec5918\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish in /.github/workflows (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/e7900023bf4b32b70ca5b2d798f9ce52187582f8\"\u003e\u003ccode\u003ee790002\u003c/code\u003e\u003c/a\u003e version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/bb1f1e4cb5eba0928cec2aaff30cb0f5ace1f108\"\u003e\u003ccode\u003ebb1f1e4\u003c/code\u003e\u003c/a\u003e WIP: Patch open, os and os.path builtins (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/322\"\u003e#322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/12005505fc29ab4183968022a487416a31b1a1bd\"\u003e\u003ccode\u003e1200550\u003c/code\u003e\u003c/a\u003e Refactor GS authentication to use default credentials (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/514\"\u003e#514\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/526\"\u003e#526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/b21cac14f0090021594f7e3afae9c48f5d7dbd46\"\u003e\u003ccode\u003eb21cac1\u003c/code\u003e\u003c/a\u003e Implement HTTP(s) support (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/863e884cbf1cf141cdf7bf9c0623e0cd3d27841d\"\u003e\u003ccode\u003e863e884\u003c/code\u003e\u003c/a\u003e fix for azure typing differences (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/65c5c012bd4297ce4e812cfb8bbf9827db346e03\"\u003e\u003ccode\u003e65c5c01\u003c/code\u003e\u003c/a\u003e Set pytest-cases\u0026gt;=3.9.1 (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/drivendataorg/cloudpathlib/compare/v0.21.1...v0.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `docutils` from 0.19 to 0.22.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rtfd/recommonmark/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.10 to 3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `jmespath` from 1.0.1 to 1.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmespath/jmespath.py/blob/develop/CHANGELOG.rst\"\u003ejmespath's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix concurrency issue with cache\n(\u003ccode\u003epr [#335](https://github.com/jmespath/jmespath.py/issues/335) \u0026lt;https://github.com/jmespath/jmespath.py/pull/335\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded support for Python 3.12-3.14 (\u003ccode\u003epr [#331](https://github.com/jmespath/jmespath.py/issues/331) \u0026lt;https://github.com/jmespath/jmespath.py/pull/331\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eRemoved support for Python 3.7-3.8 (\u003ccode\u003epr [#335](https://github.com/jmespath/jmespath.py/issues/335) \u0026lt;https://github.com/jmespath/jmespath.py/pull/335\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/jmespath/jmespath.py/commit/6ff419a8b171d055a9bfc6904605bceb8b7a80ef\"\u003e\u003ccode\u003e6ff419a\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.1.0'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmespath/jmespath.py/commit/17e964f81911b49babb33e8697b34a31f869420f\"\u003e\u003ccode\u003e17e964f\u003c/code\u003e\u003c/a\u003e Bump version to 1.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmespath/jmespath.py/commit/5ce13aab582ba08b07e1c615feeb3654a7cd8d62\"\u003e\u003ccode\u003e5ce13aa\u003c/code\u003e\u003c/a\u003e Merge branch 'v1.1.0' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmespath/jmespath.py/commit/d8f0457f8f962724b2c1ae12f79d3ba65edf4d82\"\u003e\u003ccode\u003ed8f0457\u003c/code\u003e\u003c/a\u003e Revert versions back to current version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmespath/jmespath.py/commit/8cb30825f62675f6018b812faa9e2c9566eba2e3\"\u003e\u003ccode\u003e8cb3082\u003c/code\u003e\u003c/a\u003e 1.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmespath/jmespath.py/commit/6e379910c1bc0ec0339b05da73e32cad9d3dddbc\"\u003e\u003ccode\u003e6e37991\u003c/code\u003e\u003c/a\u003e Update permissions in codeql.yml workflow (\u003ca href=\"https://redirect.github.com/jmespath/jmespath.py/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmespath/jmespath.py/commit/141734d98ac79c165ec31aa1c18dd29efc45ac49\"\u003e\u003ccode\u003e141734d\u003c/code\u003e\u003c/a\u003e Bring .github settings up-to-date (\u003ca href=\"https://redirect.github.com/jmespath/jmespath.py/issues/336\"\u003e#336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmespath/jmespath.py/commit/07e30cf011056386c3dade2502a53eb2b1d4b3c1\"\u003e\u003ccode\u003e07e30cf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jmespath/jmespath.py/issues/337\"\u003e#337\u003c/a\u003e from nateprewitt/python_changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmespath/jmespath.py/commit/9170711017c2be9e3057a384e4a6061ef71bdc6f\"\u003e\u003ccode\u003e9170711\u003c/code\u003e\u003c/a\u003e Add missing changelog entries for Python support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmespath/jmespath.py/commit/cdb9327fd597dda1aff703e6e5b98d79503c6f4e\"\u003e\u003ccode\u003ecdb9327\u003c/code\u003e\u003c/a\u003e Fix file encoding for Windows\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmespath/jmespath.py/compare/1.0.1...1.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markdown-it-py` from 3.0.0 to 4.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/markdown-it-py/releases\"\u003emarkdown-it-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis primarily drops support for Python 3.8 and 3.9, adds support for Python 3.13,\nand updates the parser to comply with Commonmark 0.31.2 and Markdown-It v14.1.0.\u003c/p\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Drop Python 3.8, test 3.13 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/342\"\u003eexecutablebooks/markdown-it-py#342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Drop support for Python 3.9 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/360\"\u003eexecutablebooks/markdown-it-py#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Comply with Commonmark 0.31.2 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/362\"\u003eexecutablebooks/markdown-it-py#362\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👌 Improve performance of \u0026quot;text\u0026quot; inline rule by \u003ca href=\"https://github.com/hukkin\"\u003e\u003ccode\u003e@​hukkin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/347\"\u003eexecutablebooks/markdown-it-py#347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 Use \u003ccode\u003estr.removesuffix\u003c/code\u003e by \u003ca href=\"https://github.com/hukkin\"\u003e\u003ccode\u003e@​hukkin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/348\"\u003eexecutablebooks/markdown-it-py#348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 limit the number of autocompleted cells in a table by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/364\"\u003eexecutablebooks/markdown-it-py#364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 fix quadratic complexity in reference parser by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/367\"\u003eexecutablebooks/markdown-it-py#367\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix emphasis inside raw links bugs by \u003ca href=\"https://github.com/tsutsu3\"\u003e\u003ccode\u003e@​tsutsu3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/320\"\u003eexecutablebooks/markdown-it-py#320\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Replace black and isort with ruff formatter by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/313\"\u003eexecutablebooks/markdown-it-py#313\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Fixed Code Style paragraph still referring to flake8 by \u003ca href=\"https://github.com/venthur\"\u003e\u003ccode\u003e@​venthur\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/309\"\u003eexecutablebooks/markdown-it-py#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Add \u0026quot;store_labels\u0026quot; to OptionsType by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/343\"\u003eexecutablebooks/markdown-it-py#343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Move \u003ccode\u003ecode_style\u003c/code\u003e to dependency group by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/344\"\u003eexecutablebooks/markdown-it-py#344\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Update codecov action by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/345\"\u003eexecutablebooks/markdown-it-py#345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Update pre-commit and upload-artifact by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/359\"\u003eexecutablebooks/markdown-it-py#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Improve spec update script by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/361\"\u003eexecutablebooks/markdown-it-py#361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 simplify logic in scanDelims by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/365\"\u003eexecutablebooks/markdown-it-py#365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🧪 Add CI testing for Python 3.12 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/303\"\u003eexecutablebooks/markdown-it-py#303\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🧪 Fix codecov by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/332\"\u003eexecutablebooks/markdown-it-py#332\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📚 Fix typo by \u003ca href=\"https://github.com/bwagner\"\u003e\u003ccode\u003e@​bwagner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/315\"\u003eexecutablebooks/markdown-it-py#315\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Fix RTD build by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/322\"\u003eexecutablebooks/markdown-it-py#322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 DOCS: Fix a few old URLs by \u003ca href=\"https://github.com/elijahgreenstein\"\u003e\u003ccode\u003e@​elijahgreenstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/358\"\u003eexecutablebooks/markdown-it-py#358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Improve README by \u003ca href=\"https://github.com/mrmurilo75\"\u003e\u003ccode\u003e@​mrmurilo75\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/340\"\u003eexecutablebooks/markdown-it-py#340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Fix CI badge link by \u003ca href=\"https://github.com/tsutsu3\"\u003e\u003ccode\u003e@​tsutsu3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/291\"\u003eexecutablebooks/markdown-it-py#291\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Update docs by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/292\"\u003eexecutablebooks/markdown-it-py#292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Add icon to readme by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/293\"\u003eexecutablebooks/markdown-it-py#293\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Update icon by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/294\"\u003eexecutablebooks/markdown-it-py#294\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 DOCS: Clarify docs regarding security configuration by \u003ca href=\"https://github.com/djramones\"\u003e\u003ccode\u003e@​djramones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/296\"\u003eexecutablebooks/markdown-it-py#296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Fix the RTD build by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/311\"\u003eexecutablebooks/markdown-it-py#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 DOCS: Fix typos by \u003ca href=\"https://github.com/elijahgreenstein\"\u003e\u003ccode\u003e@​elijahgreenstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/366\"\u003eexecutablebooks/markdown-it-py#366\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/executablebooks/markdown-it-py/blob/master/CHANGELOG.md\"\u003emarkdown-it-py's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.0 - 2024-08-10\u003c/h2\u003e\n\u003cp\u003eThis primarily drops support for Python 3.9, adds support for Python 3.13,\nand updates the parser to comply with Commonmark 0.31.2 and Markdown-It v14.1.0.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Drop support for Python 3.9 in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/360\"\u003e#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Comply with Commonmark 0.31.2 in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/362\"\u003e#362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 Improve performance of \u0026quot;text\u0026quot; inline rule in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/347\"\u003e#347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 Use \u003ccode\u003estr.removesuffix\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/348\"\u003e#348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 limit the number of autocompleted cells in a table in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/364\"\u003e#364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 fix quadratic complexity in reference parser in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/367\"\u003e#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 Fix emphasis inside raw links bugs in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/320\"\u003e#320\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/markdown-it-py/compare/v3.0.0...v4.0.0\"\u003ehttps://github.com/executablebooks/markdown-it-py/compare/v3.0.0...v4.0.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/executablebooks/markdown-it-py/commit/c62983f1554124391b47170180e6c62df4d476ca\"\u003e\u003ccode\u003ec62983f\u003c/code\u003e\u003c/a\u003e 🚀 RELEASE v4.0.0 (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/368\"\u003e#368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/9e93bd554147ffb8582581e14620c7611103d2ff\"\u003e\u003ccode\u003e9e93bd5\u003c/code\u003e\u003c/a\u003e 👌 fix quadratic complexity in reference parser (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/da45c8764b2077425c091fa1811bbb1c5f211bd1\"\u003e\u003ccode\u003eda45c87\u003c/code\u003e\u003c/a\u003e 📚 DOCS: Fix typos (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/87b16e272bf8207182084e07a63253b98fc437d7\"\u003e\u003ccode\u003e87b16e2\u003c/code\u003e\u003c/a\u003e 🔧 simplify logic in scanDelims (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/e4009641db528444b85d384af815e9cad997a016\"\u003e\u003ccode\u003ee400964\u003c/code\u003e\u003c/a\u003e 👌 limit the number of autocompleted cells in a table (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/4535d77edcb5f51450a266135687eeae8bcc5033\"\u003e\u003ccode\u003e4535d77\u003c/code\u003e\u003c/a\u003e ⬆️ Comply with Commonmark 0.31.2 (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/8eb20ac1cb63e09dcd78e84a0c71dab8446bb73c\"\u003e\u003ccode\u003e8eb20ac\u003c/code\u003e\u003c/a\u003e 🔧 Improve spec update script (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/fb9d3ab646e4f752dc8fd52e1dd7613c350ff190\"\u003e\u003ccode\u003efb9d3ab\u003c/code\u003e\u003c/a\u003e ⬆️ Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/9ffe841832d33264201aaff120349f001a02953a\"\u003e\u003ccode\u003e9ffe841\u003c/code\u003e\u003c/a\u003e 📚 DOCS: Fix a few old URLs (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/154fe43feb17947e2c933d0bb3e26618129909a8\"\u003e\u003ccode\u003e154fe43\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit and upload-artifact (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/executablebooks/markdown-it-py/compare/v3.0.0...v4.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.2.5 to 2.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.1 (Jan 10, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.1 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.1 is a patch release that fixes bugs discoved after the\n2.4.0 release. In particular, the typo \u003ccode\u003eSeedlessSequence\u003c/code\u003e is preserved to\nenable wheels using the random Cython API and built against NumPy \u0026lt; 2.4.0\nto run without errors.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 9 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAlexander Shadchin\u003c/li\u003e\n\u003cli\u003eBill Tompkins +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMarten van Kerkwijk\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eRaghuveer Devulapalli\u003c/li\u003e\n\u003cli\u003eRalf Gommers\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 15 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30490\"\u003e#30490\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30503\"\u003e#30503\u003c/a\u003e: DOC: \u003ccode\u003enumpy.select\u003c/code\u003e: fix \u003ccode\u003edefault\u003c/code\u003e parameter docstring...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30504\"\u003e#30504\u003c/a\u003e: REV: Revert part of \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30164\"\u003e#30164\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30500\"\u003e#30500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30506\"\u003e#30506\u003c/a\u003e: TYP: \u003ccode\u003enumpy.select\u003c/code\u003e: allow passing array-like \u003ccode\u003edefault\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30507\"\u003e#30507\u003c/a\u003e: MNT: use if constexpr for compile-time branch selection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30513\"\u003e#30513\u003c/a\u003e: BUG: Fix leak i...\n\n_Description has been truncated_","html_url":"https://github.com/reichlab/cladetime/pull/190","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/reichlab%2Fcladetime/issues/190","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/190/packages"},{"uuid":"3828761453","node_id":"PR_kwDOOQg2wc699WhG","number":17,"state":"closed","title":"ci: doc: bump the doc-deps group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-16T08:40:32.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-19T09:18:21.000Z","updated_at":"2026-02-16T08:40:33.000Z","time_to_close":2416931,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"ci: doc: bump","group_name":"doc-deps","update_count":10,"packages":[{"name":"anytree","old_version":"2.12.1","new_version":"2.13.0","repository_url":"https://github.com/c0fec0de/anytree"},{"name":"doxmlparser","old_version":"1.13.2","new_version":"1.16.1","repository_url":"https://github.com/doxygen/doxygen"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"sphinx-sitemap","old_version":"2.6.0","new_version":"2.9.0","repository_url":"https://github.com/jdillard/sphinx-sitemap"},{"name":"sphinx-togglebutton","old_version":"0.3.2","new_version":"0.4.4","repository_url":"https://github.com/executablebooks/sphinx-togglebutton"},{"name":"sphinxcontrib-svg2pdfconverter","old_version":"1.3.0","new_version":"2.0.0","repository_url":"https://github.com/missinglinkelectronics/sphinxcontrib-svg2pdfconverter"}],"path":null,"ecosystem":"pip"},"body":"Bumps the doc-deps group with 10 updates in the /doc directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [anytree](https://github.com/c0fec0de/anytree) | `2.12.1` | `2.13.0` |\n| [doxmlparser](https://github.com/doxygen/doxygen) | `1.13.2` | `1.16.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `3.0.2` | `3.1.0` |\n| [sphinx-sitemap](https://github.com/jdillard/sphinx-sitemap) | `2.6.0` | `2.9.0` |\n| [sphinx-togglebutton](https://github.com/executablebooks/sphinx-togglebutton) | `0.3.2` | `0.4.4` |\n| [sphinxcontrib-svg2pdfconverter](https://github.com/missinglinkelectronics/sphinxcontrib-svg2pdfconverter) | `1.3.0` | `2.0.0` |\n\n\nUpdates `anytree` from 2.12.1 to 2.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/c0fec0de/anytree/releases\"\u003eanytree's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e270 build broken with poetry core 200 by \u003ca href=\"https://github.com/c0fec0de\"\u003e\u003ccode\u003e@​c0fec0de\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/pull/272\"\u003ec0fec0de/anytree#272\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix test_pickle.py not actually testing unpickled file by \u003ca href=\"https://github.com/kartben\"\u003e\u003ccode\u003e@​kartben\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/pull/266\"\u003ec0fec0de/anytree#266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix ruff issues by \u003ca href=\"https://github.com/c0fec0de\"\u003e\u003ccode\u003e@​c0fec0de\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/pull/273\"\u003ec0fec0de/anytree#273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixes \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/issues/249\"\u003e#249\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/issues/250\"\u003e#250\u003c/a\u003e by \u003ca href=\"https://github.com/c0fec0de\"\u003e\u003ccode\u003e@​c0fec0de\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/pull/274\"\u003ec0fec0de/anytree#274\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/kartben\"\u003e\u003ccode\u003e@​kartben\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/pull/266\"\u003ec0fec0de/anytree#266\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSpecial thanks for PRs to \u003ca href=\"https://github.com/ncopa\"\u003e\u003ccode\u003e@​ncopa\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/MitchellAugustin\"\u003e\u003ccode\u003e@​MitchellAugustin\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/CoolCat467\"\u003e\u003ccode\u003e@​CoolCat467\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/c0fec0de/anytree/compare/2.12.1...2.13.0\"\u003ehttps://github.com/c0fec0de/anytree/compare/2.12.1...2.13.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/c0fec0de/anytree/commit/2e0a1b956172654d75aff93277ce3d883355e0bf\"\u003e\u003ccode\u003e2e0a1b9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/issues/274\"\u003e#274\u003c/a\u003e from c0fec0de/remove-six\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/c0fec0de/anytree/commit/b8c1d254f058f02cfd5e4e9dcd1f736930b79e13\"\u003e\u003ccode\u003eb8c1d25\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/issues/273\"\u003e#273\u003c/a\u003e from c0fec0de/fix/ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/c0fec0de/anytree/commit/f44de1a7fa179d6263c18166597fa25f866c4681\"\u003e\u003ccode\u003ef44de1a\u003c/code\u003e\u003c/a\u003e fixes \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/issues/249\"\u003e#249\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/c0fec0de/anytree/commit/f8b89b12b25228e7b7a93d18d4a479b1fc53275b\"\u003e\u003ccode\u003ef8b89b1\u003c/code\u003e\u003c/a\u003e fix ruff issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/c0fec0de/anytree/commit/9f5c783345dfece04b4dc3498df8eb6333381622\"\u003e\u003ccode\u003e9f5c783\u003c/code\u003e\u003c/a\u003e Merge branch 'kartben-patch-1'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/c0fec0de/anytree/commit/839e307106938973111aa293b9139a14e714dbcc\"\u003e\u003ccode\u003e839e307\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/c0fec0de/anytree/commit/7204aefcc5bcd9a4d7acdcaa4adb01d4c761accc\"\u003e\u003ccode\u003e7204aef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/issues/272\"\u003e#272\u003c/a\u003e from c0fec0de/270-build-broken-with-poetry-core-200\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/c0fec0de/anytree/commit/3a2b9a9da25bbcd335ddfe1050da71f2f9945aaa\"\u003e\u003ccode\u003e3a2b9a9\u003c/code\u003e\u003c/a\u003e fundamental environment renovation - NO FUNCTIONAL CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/c0fec0de/anytree/commit/06e2f532a9b21f48767337b9adab44f89e8ec9d1\"\u003e\u003ccode\u003e06e2f53\u003c/code\u003e\u003c/a\u003e switch to uv, use src layout, introduce simple make\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/c0fec0de/anytree/commit/358b68db910cf155bb8aeee2501216c05f2084b8\"\u003e\u003ccode\u003e358b68d\u003c/code\u003e\u003c/a\u003e Fix test_pickle.py not actually testing unpickled file\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/c0fec0de/anytree/compare/2.12.1...2.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `doxmlparser` from 1.13.2 to 1.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/doxygen/doxygen/releases\"\u003edoxmlparser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eDoxygen release 1.16.1\u003c/h2\u003e\n\u003cp\u003eSee the \u003ca href=\"https://www.doxygen.org/manual/changelog.html#log_1_16_1\"\u003echangelog\u003c/a\u003e for release 1.16.1\u003c/p\u003e\n\u003ch2\u003eDoxygen release 1.16.0\u003c/h2\u003e\n\u003cp\u003eSee the \u003ca href=\"https://www.doxygen.org/manual/changelog.html#log_1_16_0\"\u003echangelog\u003c/a\u003e for release 1.16.0\u003c/p\u003e\n\u003ch2\u003eDoxygen release 1.15.0\u003c/h2\u003e\n\u003cp\u003eSee the \u003ca href=\"https://www.doxygen.org/manual/changelog.html#log_1_15_0\"\u003echangelog\u003c/a\u003e for release 1.15.0\u003c/p\u003e\n\u003ch2\u003eDoxygen release 1.14.0\u003c/h2\u003e\n\u003cp\u003eSee the \u003ca href=\"https://www.doxygen.org/manual/changelog.html#log_1_14_0\"\u003echangelog\u003c/a\u003e for release 1.14.0\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/doxygen/doxygen/blob/master/doc_internal/releases.md\"\u003edoxmlparser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\\page pg_rel Overview of doxygen release dates\u003c/p\u003e\n\u003cp\u003eThe following table gives an overview of the doxygen releases together with the release dates.\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\u003eSee full diff in \u003ca href=\"https://github.com/doxygen/doxygen/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pygments` from 2.19.1 to 2.19.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pygments/pygments/releases\"\u003epygments's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.19.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLua: Fix regression introduced in 2.19.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2882\"\u003e#2882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2839\"\u003e#2839\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/pygments/pygments/blob/master/CHANGES\"\u003epygments's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.19.2\u003c/h2\u003e\n\u003cp\u003e(released June 21st, 2025)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLua: Fix regression introduced in 2.19.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2882\"\u003e#2882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2839\"\u003e#2839\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/pygments/pygments/commit/cfca62e6e95136e48a255e8cbffb0bbe1d98456c\"\u003e\u003ccode\u003ecfca62e\u003c/code\u003e\u003c/a\u003e Prepare v2.19.2 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/6688300df2ea289a6137c7ee9c78d0bb95683b5c\"\u003e\u003ccode\u003e6688300\u003c/code\u003e\u003c/a\u003e Disable pyodide (currently broken.)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/66997c3e302226a95c22cdaebf827444327920fa\"\u003e\u003ccode\u003e66997c3\u003c/code\u003e\u003c/a\u003e Update ruff version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/94dda77d69a6d6c47c33f06ce2425e7f306154a2\"\u003e\u003ccode\u003e94dda77\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/26634c856cefea620571123577d1f8cf09589ed8\"\u003e\u003ccode\u003e26634c8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2882\"\u003e#2882\u003c/a\u003e from thavelick/fix_lua_runaway_regex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/b6a51ece09e31d3db2b732c8536a533b6de74768\"\u003e\u003ccode\u003eb6a51ec\u003c/code\u003e\u003c/a\u003e fix lua regex causing runaway backtracking.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/edef94d66c2d70f05a86ac6098a69ab253b8d946\"\u003e\u003ccode\u003eedef94d\u003c/code\u003e\u003c/a\u003e Investigation for \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2839\"\u003e#2839\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/fb6a00ef872e45a23212c214b8494ebedbd4709b\"\u003e\u003ccode\u003efb6a00e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2837\"\u003e#2837\u003c/a\u003e from dlazin/sql-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/bf7aa2368fe7e0f42d4543781f0b00b4565b3995\"\u003e\u003ccode\u003ebf7aa23\u003c/code\u003e\u003c/a\u003e Clean up sql.py\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pygments/pygments/compare/2.19.1...2.19.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.3.5 to 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.3.5...9.0.2\"\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 `sphinx-autobuild` from 2024.10.3 to 2025.8.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-rtd-theme` from 3.0.2 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst\"\u003esphinx-rtd-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc2:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc1:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.0.2:\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/readthedocs/sphinx_rtd_theme/commit/795de79c8b311592f5863a25307d85924bf52164\"\u003e\u003ccode\u003e795de79\u003c/code\u003e\u003c/a\u003e Release 3.1.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1676\"\u003e#1676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/66d0fdd910e142d058c20b474338051b0751f03c\"\u003e\u003ccode\u003e66d0fdd\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to the test suite (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1668\"\u003e#1668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/fbe5e6004195a1e75654eface1884485c57eb68e\"\u003e\u003ccode\u003efbe5e60\u003c/code\u003e\u003c/a\u003e 3.1.0rc2 with support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/a76174c0bb0af755718f3cbdffbf97d19d0ac0ec\"\u003e\u003ccode\u003ea76174c\u003c/code\u003e\u003c/a\u003e Add support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1671\"\u003e#1671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/20733c3bcc60df8eda23512a0f3ccb2861486110\"\u003e\u003ccode\u003e20733c3\u003c/code\u003e\u003c/a\u003e Add support for Sphinx 9.0.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1666\"\u003e#1666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/71aacd35048c8bc2ab646ed4e3e9af1075034387\"\u003e\u003ccode\u003e71aacd3\u003c/code\u003e\u003c/a\u003e Update Code of Conduct URL (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1664\"\u003e#1664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/5a263753d52c1628c88392fbf52c729f5a8e79b5\"\u003e\u003ccode\u003e5a26375\u003c/code\u003e\u003c/a\u003e Run tests and build docs with Sphinx 8.2 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1640\"\u003e#1640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/8d4d394dad2d55cf9a4db880effac6aa5c7b12e6\"\u003e\u003ccode\u003e8d4d394\u003c/code\u003e\u003c/a\u003e Sidebar should not be floating on mobile (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1622\"\u003e#1622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/compare/3.0.2...3.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-sitemap` from 2.6.0 to 2.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jdillard/sphinx-sitemap/releases\"\u003esphinx-sitemap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.9.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e:sparkles: NEW: Add a configuration value to indent the XML output by \u003ca href=\"https://github.com/julien-lecomte\"\u003e\u003ccode\u003e@​julien-lecomte\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/pull/112\"\u003ejdillard/sphinx-sitemap#112\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/julien-lecomte\"\u003e\u003ccode\u003e@​julien-lecomte\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/pull/112\"\u003ejdillard/sphinx-sitemap#112\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jdillard/sphinx-sitemap/compare/v2.8.0...v2.9.0\"\u003ehttps://github.com/jdillard/sphinx-sitemap/compare/v2.8.0...v2.9.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.8.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e:sparkles: NEW: Add support for wildcard patterns to sitemap_excludes by \u003ca href=\"https://github.com/jdillard\"\u003e\u003ccode\u003e@​jdillard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/pull/113\"\u003ejdillard/sphinx-sitemap#113\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jdillard/sphinx-sitemap/compare/v2.7.2...v2.8.0\"\u003ehttps://github.com/jdillard/sphinx-sitemap/compare/v2.7.2...v2.8.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.7.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e:bug: FIX: Change sitemap_show_lastmod to default of  False by \u003ca href=\"https://github.com/jdillard\"\u003e\u003ccode\u003e@​jdillard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/pull/110\"\u003ejdillard/sphinx-sitemap#110\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jdillard/sphinx-sitemap/compare/v2.7.1...v2.7.2\"\u003ehttps://github.com/jdillard/sphinx-sitemap/compare/v2.7.1...v2.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.7.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e:wrench: MAINT: Remove support for Python 3.8 by \u003ca href=\"https://github.com/jdillard\"\u003e\u003ccode\u003e@​jdillard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/pull/106\"\u003ejdillard/sphinx-sitemap#106\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jdillard/sphinx-sitemap/compare/v2.7.0...v2.7.1\"\u003ehttps://github.com/jdillard/sphinx-sitemap/compare/v2.7.0...v2.7.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.7.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e:sparkles: NEW: Add support for lastmod using sphinx-last-updated-by-git by \u003ca href=\"https://github.com/jdillard\"\u003e\u003ccode\u003e@​jdillard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/SecondSkoll\"\u003e\u003ccode\u003e@​SecondSkoll\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/pull/95\"\u003ejdillard/sphinx-sitemap#95\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/SecondSkoll\"\u003e\u003ccode\u003e@​SecondSkoll\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/pull/95\"\u003ejdillard/sphinx-sitemap#95\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jdillard/sphinx-sitemap/compare/v2.6.0...v2.7.0\"\u003ehttps://github.com/jdillard/sphinx-sitemap/compare/v2.6.0...v2.7.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/jdillard/sphinx-sitemap/blob/master/CHANGELOG.rst\"\u003esphinx-sitemap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e|:sparkles:| NEW: Add :confval:\u003ccode\u003esitemap_indent\u003c/code\u003e configuration value to control XML indentation\n\u003ccode\u003e[#112](https://github.com/jdillard/sphinx-sitemap/issues/112) \u0026lt;https://github.com/jdillard/sphinx-sitemap/pull/112\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e|:sparkles:| NEW: Add support for wildcard patterns to :confval:\u003ccode\u003esitemap_excludes\u003c/code\u003e\n\u003ccode\u003e[#113](https://github.com/jdillard/sphinx-sitemap/issues/113) \u0026lt;https://github.com/jdillard/sphinx-sitemap/pull/113\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.2\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eRelease date: 2025-06-26\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e|:bug:| FIX: Change :confval:\u003ccode\u003esitemap_show_lastmod\u003c/code\u003e to default of \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eRelease date: 2025-06-20\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eRelease date: 2025-06-20\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e|:sparkles:| NEW: Add support for \u003ccode\u003elastmod\u003c/code\u003e using \u003ccode\u003esphinx-last-updated-by-git\u003c/code\u003e_\n\u003ccode\u003e[#95](https://github.com/jdillard/sphinx-sitemap/issues/95) \u0026lt;https://github.com/jdillard/sphinx-sitemap/pull/95\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/jdillard/sphinx-sitemap/commit/70fe479496d429542675b0f3981ccb2cd0178985\"\u003e\u003ccode\u003e70fe479\u003c/code\u003e\u003c/a\u003e Add a configuration value to indent the output (aka prettify output) (\u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/issues/112\"\u003e#112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdillard/sphinx-sitemap/commit/96d0936c344e2adc23756b4613a66571d53067f3\"\u003e\u003ccode\u003e96d0936\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the all-github-actions group (\u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/issues/116\"\u003e#116\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdillard/sphinx-sitemap/commit/2891693f77ca78f5be4c67dbb6bed37012cce14a\"\u003e\u003ccode\u003e2891693\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/issues/115\"\u003e#115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdillard/sphinx-sitemap/commit/03881d663c20756d71304719d921f4b311c92b51\"\u003e\u003ccode\u003e03881d6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the all-github-actions group (\u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdillard/sphinx-sitemap/commit/822c8c12487ac23ffd44e998f5e74d1f566608b1\"\u003e\u003ccode\u003e822c8c1\u003c/code\u003e\u003c/a\u003e :sparkles: NEW: Add support for wildcard patterns to sitemap_excludes (\u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/issues/113\"\u003e#113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdillard/sphinx-sitemap/commit/3fcffe6413ba1431c0f4059631a85f13c1cf27f8\"\u003e\u003ccode\u003e3fcffe6\u003c/code\u003e\u003c/a\u003e clean up docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdillard/sphinx-sitemap/commit/2e22578a4fcad2a252a636dea178979c7bc82b62\"\u003e\u003ccode\u003e2e22578\u003c/code\u003e\u003c/a\u003e Add highlights section to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdillard/sphinx-sitemap/commit/23ca34c38f83c678559c5cebb1bf93f6f8279043\"\u003e\u003ccode\u003e23ca34c\u003c/code\u003e\u003c/a\u003e Add demo to index.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdillard/sphinx-sitemap/commit/fd065b643805435e772d1d7c38e8763b3d1dbd0d\"\u003e\u003ccode\u003efd065b6\u003c/code\u003e\u003c/a\u003e Improve lastmod docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdillard/sphinx-sitemap/commit/118a17c1e7788de1f58ef93af7074e74acd89ad0\"\u003e\u003ccode\u003e118a17c\u003c/code\u003e\u003c/a\u003e :bug: FIX: Change sitemap_show_lastmod to default of  False (\u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/issues/110\"\u003e#110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jdillard/sphinx-sitemap/compare/v2.6.0...v2.9.0\"\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\nUpdates `sphinxcontrib-svg2pdfconverter` from 1.3.0 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/missinglinkelectronics/sphinxcontrib-svg2pdfconverter/commits\"\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/suja8742/Zephyr-RTOS-Application-examples/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/suja8742%2FZephyr-RTOS-Application-examples/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"},{"uuid":"3820109422","node_id":"PR_kwDOPn-p3M69hLXf","number":4,"state":"open","title":"Bump sphinx-autobuild from 2024.10.3 to 2025.8.25","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-16T03:16:59.000Z","updated_at":"2026-01-16T03:17:29.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) from 2024.10.3 to 2025.8.25.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\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=sphinx-autobuild\u0026package-manager=pip\u0026previous-version=2024.10.3\u0026new-version=2025.8.25)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/edwardtheharris/helm-jenkins/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/edwardtheharris%2Fhelm-jenkins/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"},{"uuid":"3806938162","node_id":"PR_kwDOO17VGM681Qfy","number":103,"state":"closed","title":"build(deps): Bump the doc-updates group across 1 directory with 4 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-20T00:01:51.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-13T03:42:16.000Z","updated_at":"2026-01-20T00:01:52.000Z","time_to_close":591575,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","group_name":"doc-updates","update_count":4,"packages":[{"name":"sphinx","old_version":"8.2.3","new_version":"9.1.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-autobuild","old_version":"2024.9.19","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-autodoc-typehints","old_version":"2.4.4","new_version":"3.6.2","repository_url":"https://github.com/tox-dev/sphinx-autodoc-typehints"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"}],"path":null,"ecosystem":"pip"},"body":"Bumps the doc-updates group with 4 updates in the /docs directory: [sphinx](https://github.com/sphinx-doc/sphinx), [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild), [sphinx-autodoc-typehints](https://github.com/tox-dev/sphinx-autodoc-typehints) and [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme).\n\nUpdates `sphinx` from 8.2.3 to 9.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx/releases\"\u003esphinx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSphinx 9.1.0\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14153\"\u003e#14153\u003c/a\u003e: Drop Python 3.11 support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/12555\"\u003e#12555\u003c/a\u003e: Drop Docutils 0.20 support.\nPatch by Adam Turner\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eadd_static_dir()\u003c/code\u003e for copying static\nassets from extensions to the build output.\nPatch by Jared Dillard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14189\"\u003e#14189\u003c/a\u003e: autodoc: Fix duplicate \u003ccode\u003e:no-index-entry:\u003c/code\u003e for modules.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13713\"\u003e#13713\u003c/a\u003e: Fix compatibility with MyST-Parser.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eFix tests for Python 3.15.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Fix default option parsing.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eRemove incorrect static typing assertions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14050\"\u003e#14050\u003c/a\u003e: LaTeXTranslator fails to build documents using the \u0026quot;acronym\u0026quot;\nstandard role.\nPatch by Günter Milde\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix rendering for grid filled merged vertical cell.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14228\"\u003e#14228\u003c/a\u003e: LaTeX: Fix overrun footer for cases of merged vertical table cells.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14207\"\u003e#14207\u003c/a\u003e: Fix creating \u003ccode\u003eHTMLThemeFactory\u003c/code\u003e objects in third-party extensions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/3099\"\u003e#3099\u003c/a\u003e: LaTeX: PDF build crashes if a code-block contains more than\ncirca 1350 codelines (about 27 a4-sized pages at default pointsize).\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14064\"\u003e#14064\u003c/a\u003e: LaTeX: TABs ending up in sphinxVerbatim fail to obey tab stops.\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Improve support for non-weakreferencable objects.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix accidental removal at \u003ccode\u003e3.5.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/8854\"\u003e#8854\u003c/a\u003e) of the documentation of\n\u003ccode\u003eliteralblockcappos\u003c/code\u003e key of  sphinxsetup.\nPatch by Jean-François B.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/sphinx-doc/sphinx/blob/master/CHANGES.rst\"\u003esphinx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 9.1.0 (released Dec 31, 2025)\u003c/h1\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14153\"\u003e#14153\u003c/a\u003e: Drop Python 3.11 support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/12555\"\u003e#12555\u003c/a\u003e: Drop Docutils 0.20 support.\nPatch by Adam Turner\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :meth:\u003ccode\u003e~sphinx.application.Sphinx.add_static_dir\u003c/code\u003e for copying static\nassets from extensions to the build output.\nPatch by Jared Dillard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14189\"\u003e#14189\u003c/a\u003e: autodoc: Fix duplicate \u003ccode\u003e:no-index-entry:\u003c/code\u003e for modules.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13713\"\u003e#13713\u003c/a\u003e: Fix compatibility with MyST-Parser.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eFix tests for Python 3.15.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Fix default option parsing.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eRemove incorrect static typing assertions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14050\"\u003e#14050\u003c/a\u003e: LaTeXTranslator fails to build documents using the \u0026quot;acronym\u0026quot;\nstandard role.\nPatch by Günter Milde\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix rendering for grid filled merged vertical cell.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14228\"\u003e#14228\u003c/a\u003e: LaTeX: Fix overrun footer for cases of merged vertical table cells.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14207\"\u003e#14207\u003c/a\u003e: Fix creating \u003ccode\u003eHTMLThemeFactory\u003c/code\u003e objects in third-party extensions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/3099\"\u003e#3099\u003c/a\u003e: LaTeX: PDF build crashes if a code-block contains more than\ncirca 1350 codelines (about 27 a4-sized pages at default pointsize).\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14064\"\u003e#14064\u003c/a\u003e: LaTeX: TABs ending up in sphinxVerbatim fail to obey tab stops.\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Improve support for non-weakreferencable objects.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix accidental removal at \u003ccode\u003e3.5.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/8854\"\u003e#8854\u003c/a\u003e) of the documentation of\n\u003ccode\u003eliteralblockcappos\u003c/code\u003e key of  :ref:\u003ccode\u003e'sphinxsetup' \u0026lt;latexsphinxsetup\u0026gt;\u003c/code\u003e.\nPatch by Jean-François B.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/cc7c6f435ad37bb12264f8118c8461b230e6830c\"\u003e\u003ccode\u003ecc7c6f4\u003c/code\u003e\u003c/a\u003e Bump to 9.1.0 final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/b127b9478aa4654a82eeadf1a1e89715d3927608\"\u003e\u003ccode\u003eb127b94\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eapp.add_static_dir()\u003c/code\u003e for copying extension static files (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14219\"\u003e#14219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/20f1c46790d370b50fa7396cca3e1cc658ce9f89\"\u003e\u003ccode\u003e20f1c46\u003c/code\u003e\u003c/a\u003e LaTeX: Inhibit breaks for rows with merged vertical cells (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14227\"\u003e#14227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/3c85411fd06a1c3026f7991818312e5358ef52e5\"\u003e\u003ccode\u003e3c85411\u003c/code\u003e\u003c/a\u003e Polish CHANGES.rst (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14225\"\u003e#14225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/9ee5446c6cfb997a6b92f5cfb84d045ec947417a\"\u003e\u003ccode\u003e9ee5446\u003c/code\u003e\u003c/a\u003e LaTeX: restore 1.7 documentation of literalblockcappos (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14224\"\u003e#14224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/d75d602005be7567abc7741ee777f6f8c302d827\"\u003e\u003ccode\u003ed75d602\u003c/code\u003e\u003c/a\u003e LaTeX: improve (again...) some code comments in time for 9.1.0 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14222\"\u003e#14222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/8dca61d69a4a05c56702980e4f6cbe6451dd9ebc\"\u003e\u003ccode\u003e8dca61d\u003c/code\u003e\u003c/a\u003e Improve some LaTeX code comments (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14220\"\u003e#14220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/8ab960098a8e12b8893bd3ceafc394759118346b\"\u003e\u003ccode\u003e8ab9600\u003c/code\u003e\u003c/a\u003e Bump to 9.1.0 candidate 2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/d59b2375945ed04414a11b0adb3e5655525f3e9e\"\u003e\u003ccode\u003ed59b237\u003c/code\u003e\u003c/a\u003e autodoc: Improve support for non-weakreferencable objects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/964424b3dbc92ed1718272fd45123878f3eec14d\"\u003e\u003ccode\u003e964424b\u003c/code\u003e\u003c/a\u003e Use the correct reference for using existing extensions (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14157\"\u003e#14157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx/compare/v8.2.3...v9.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autobuild` from 2024.9.19 to 2025.8.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\u003c/p\u003e\n\u003ch2\u003eRelease 2024.10.03\u003c/h2\u003e\n\u003cp\u003e2024.10.03\u003c/p\u003e\n\u003ch2\u003eRelease 2024.10.02\u003c/h2\u003e\n\u003cp\u003e2024.10.02\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/86e2f373802417c944fda6c2930c8c3c98c20218\"\u003e\u003ccode\u003e86e2f37\u003c/code\u003e\u003c/a\u003e Release 2024.10.03\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.09.19...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autodoc-typehints` from 2.4.4 to 3.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/releases\"\u003esphinx-autodoc-typehints's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.6.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility with 9.1.0 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/595\"\u003etox-dev/sphinx-autodoc-typehints#595\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/sphinx-autodoc-typehints/compare/3.6.1...3.6.2\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.6.1...3.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.6.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude metadata in type hints by \u003ca href=\"https://github.com/AllanChain\"\u003e\u003ccode\u003e@​AllanChain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/594\"\u003etox-dev/sphinx-autodoc-typehints#594\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/AllanChain\"\u003e\u003ccode\u003e@​AllanChain\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/594\"\u003etox-dev/sphinx-autodoc-typehints#594\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/sphinx-autodoc-typehints/compare/3.6.0...3.6.1\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.6.0...3.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse Sphinx 9 class interface by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/589\"\u003etox-dev/sphinx-autodoc-typehints#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/tox-dev/sphinx-autodoc-typehints/compare/3.5.2...3.6.0\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.5.2...3.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.5.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve type information from docstrings if no type annotation is present and parameter has default value. by \u003ca href=\"https://github.com/christianaguilera-foundry\"\u003e\u003ccode\u003e@​christianaguilera-foundry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/576\"\u003etox-dev/sphinx-autodoc-typehints#576\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/christianaguilera-foundry\"\u003e\u003ccode\u003e@​christianaguilera-foundry\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/576\"\u003etox-dev/sphinx-autodoc-typehints#576\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/sphinx-autodoc-typehints/compare/3.5.1...3.5.2\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.5.1...3.5.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.5.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeclare 3.14 support by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/571\"\u003etox-dev/sphinx-autodoc-typehints#571\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/sphinx-autodoc-typehints/compare/3.5.0...3.5.1\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.5.0...3.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/c9ee0e399767a83909ac00a0f912d1031b6ab260\"\u003e\u003ccode\u003ec9ee0e3\u003c/code\u003e\u003c/a\u003e Fix compatibility with 9.1.0 (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/595\"\u003e#595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/65ad3c43111a5eea6bbaec6803c9a1bcf78cdb6c\"\u003e\u003ccode\u003e65ad3c4\u003c/code\u003e\u003c/a\u003e Include metadata in type hints (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/594\"\u003e#594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/3501b47ca738726f704f41e795caeaa5ff8123a9\"\u003e\u003ccode\u003e3501b47\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/593\"\u003e#593\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/136044f097480713d11083ad0a09d0c3f59b42aa\"\u003e\u003ccode\u003e136044f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/9e7037ff0c9b26215bccd5434c46e42e7b56ed94\"\u003e\u003ccode\u003e9e7037f\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/1289a796eae8e0fcf572071444f06841db352653\"\u003e\u003ccode\u003e1289a79\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/590\"\u003e#590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/7abd95a25ac65bfabab68e1fcb71beb7b5d9f832\"\u003e\u003ccode\u003e7abd95a\u003c/code\u003e\u003c/a\u003e Use Sphinx 9 class interface (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/52114b2408a605fa53877a926b471cf317954c65\"\u003e\u003ccode\u003e52114b2\u003c/code\u003e\u003c/a\u003e Support Sphinx 9+ (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/78f49cd27cfb0954f20f275b90ade63e495bc370\"\u003e\u003ccode\u003e78f49cd\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/585\"\u003e#585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/00a035bdab3395becf1c6faf13c7a55a83243b81\"\u003e\u003ccode\u003e00a035b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/compare/2.4.4...3.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-rtd-theme` from 3.0.2 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst\"\u003esphinx-rtd-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc2:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc1:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.0.2:\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/readthedocs/sphinx_rtd_theme/commit/795de79c8b311592f5863a25307d85924bf52164\"\u003e\u003ccode\u003e795de79\u003c/code\u003e\u003c/a\u003e Release 3.1.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1676\"\u003e#1676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/66d0fdd910e142d058c20b474338051b0751f03c\"\u003e\u003ccode\u003e66d0fdd\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to the test suite (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1668\"\u003e#1668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/fbe5e6004195a1e75654eface1884485c57eb68e\"\u003e\u003ccode\u003efbe5e60\u003c/code\u003e\u003c/a\u003e 3.1.0rc2 with support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/a76174c0bb0af755718f3cbdffbf97d19d0ac0ec\"\u003e\u003ccode\u003ea76174c\u003c/code\u003e\u003c/a\u003e Add support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1671\"\u003e#1671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/20733c3bcc60df8eda23512a0f3ccb2861486110\"\u003e\u003ccode\u003e20733c3\u003c/code\u003e\u003c/a\u003e Add support for Sphinx 9.0.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1666\"\u003e#1666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/71aacd35048c8bc2ab646ed4e3e9af1075034387\"\u003e\u003ccode\u003e71aacd3\u003c/code\u003e\u003c/a\u003e Update Code of Conduct URL (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1664\"\u003e#1664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/5a263753d52c1628c88392fbf52c729f5a8e79b5\"\u003e\u003ccode\u003e5a26375\u003c/code\u003e\u003c/a\u003e Run tests and build docs with Sphinx 8.2 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1640\"\u003e#1640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/8d4d394dad2d55cf9a4db880effac6aa5c7b12e6\"\u003e\u003ccode\u003e8d4d394\u003c/code\u003e\u003c/a\u003e Sidebar should not be floating on mobile (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1622\"\u003e#1622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/compare/3.0.2...3.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/mkb79/Audible-uv-test/pull/103","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkb79%2FAudible-uv-test/issues/103","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/103/packages"},{"uuid":"3805301023","node_id":"PR_kwDODe0Bqc68wGAX","number":366,"state":"closed","title":"Bump the dependencies group across 1 directory with 15 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-26T15:22:07.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-12T17:34:53.000Z","updated_at":"2026-01-26T15:22:08.000Z","time_to_close":1201634,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":15,"packages":[{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"anyio","old_version":"4.10.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2025.8.3","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"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.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"roman-numerals-py","old_version":"3.1.0","new_version":"4.1.0","repository_url":"https://github.com/AA-Turner/roman-numerals"},{"name":"starlette","old_version":"0.49.1","new_version":"0.51.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.6.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 15 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `3.0.2` | `3.1.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.12.1` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `2026.1.4` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.3` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [roman-numerals-py](https://github.com/AA-Turner/roman-numerals) | `3.1.0` | `4.1.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.1` | `0.51.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.0` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.40.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n\n\nUpdates `sphinx-autobuild` from 2024.10.3 to 2025.8.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-rtd-theme` from 3.0.2 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst\"\u003esphinx-rtd-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc2:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc1:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.0.2:\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/readthedocs/sphinx_rtd_theme/commit/795de79c8b311592f5863a25307d85924bf52164\"\u003e\u003ccode\u003e795de79\u003c/code\u003e\u003c/a\u003e Release 3.1.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1676\"\u003e#1676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/66d0fdd910e142d058c20b474338051b0751f03c\"\u003e\u003ccode\u003e66d0fdd\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to the test suite (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1668\"\u003e#1668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/fbe5e6004195a1e75654eface1884485c57eb68e\"\u003e\u003ccode\u003efbe5e60\u003c/code\u003e\u003c/a\u003e 3.1.0rc2 with support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/a76174c0bb0af755718f3cbdffbf97d19d0ac0ec\"\u003e\u003ccode\u003ea76174c\u003c/code\u003e\u003c/a\u003e Add support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1671\"\u003e#1671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/20733c3bcc60df8eda23512a0f3ccb2861486110\"\u003e\u003ccode\u003e20733c3\u003c/code\u003e\u003c/a\u003e Add support for Sphinx 9.0.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1666\"\u003e#1666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/71aacd35048c8bc2ab646ed4e3e9af1075034387\"\u003e\u003ccode\u003e71aacd3\u003c/code\u003e\u003c/a\u003e Update Code of Conduct URL (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1664\"\u003e#1664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/5a263753d52c1628c88392fbf52c729f5a8e79b5\"\u003e\u003ccode\u003e5a26375\u003c/code\u003e\u003c/a\u003e Run tests and build docs with Sphinx 8.2 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1640\"\u003e#1640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/8d4d394dad2d55cf9a4db880effac6aa5c7b12e6\"\u003e\u003ccode\u003e8d4d394\u003c/code\u003e\u003c/a\u003e Sidebar should not be floating on mobile (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1622\"\u003e#1622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/compare/3.0.2...3.1.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.10.0 to 4.12.1\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.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged all functions currently raising the private \u003ccode\u003eNoCurrentAsyncBackend\u003c/code\u003e exception (since v4.12.0) to instead raise the public \u003ccode\u003eNoEventLoopError\u003c/code\u003e exception (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with instance methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1042\"\u003e#1042\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003eCancelScope.cancel()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by passing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to \u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e keyword argument (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically handle all async tests (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/857\"\u003e#857\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously raised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise \u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but \u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this scenario. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\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/a0dccbd78d75886247ae7846b460fd390cc94fbd\"\u003e\u003ccode\u003ea0dccbd\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e1121a735c977c00c18b3a581d28daf83a279833\"\u003e\u003ccode\u003ee1121a7\u003c/code\u003e\u003c/a\u003e Enabled tests for the 4.12.x branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/69ab43e549517ce554f84365fed9da90e806c303\"\u003e\u003ccode\u003e69ab43e\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4f4b33ed56edd1bc4785a368a103ad8138730d91\"\u003e\u003ccode\u003e4f4b33e\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eBlockingPortal.__new__\u003c/code\u003e hack (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/af17d89b80ebbd526215e2dbd025b284730aaa3f\"\u003e\u003ccode\u003eaf17d89\u003c/code\u003e\u003c/a\u003e Replaced the NoCurrentAsyncBackend exception with NoEventLoopError (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1049\"\u003e#1049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4310264312a2e86e792481bdb05bdb381678a6b5\"\u003e\u003ccode\u003e4310264\u003c/code\u003e\u003c/a\u003e Updated pre-commit modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0cc6723ba5a2fdaa98a24852d3681c4ed99b8863\"\u003e\u003ccode\u003e0cc6723\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1051\"\u003e#1051\u003c/a\u003e)\u003c/li\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.10.0...4.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.8.3 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.08.03...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.3 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\u003c/blockquote\u003e\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\u003c/blockquote\u003e\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.3...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.2.1 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/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.10 to 3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `roman-numerals-py` from 3.1.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AA-Turner/roman-numerals/releases\"\u003eroman-numerals-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.1.0\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.0.0\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/AA-Turner/roman-numerals/blob/master/CHANGES.rst\"\u003eroman-numerals-py's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.1.0 (released 17 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003eAdd some debug assertions for unsafe blocks\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.0.0 (released 16 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRename Python package to \u003ccode\u003eroman-numerals\u003c/code\u003e on PyPI.\u003c/li\u003e\n\u003cli\u003ePublish \u003ccode\u003eroman-numerals-py\u003c/code\u003e as a meta-package that depends\non \u003ccode\u003eroman-numerals\u003c/code\u003e and installs no modules.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eIncrease the minimum supported Rust version (MSRV) to 1.81.0.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::error::Error\u003c/code\u003e trait for all error types.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::fmt\u003c/code\u003e traits in \u003ccode\u003eno-std\u003c/code\u003e mode.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eFrom\u0026lt;RomanNumeral\u0026gt;\u003c/code\u003e for most integer types.\u003c/li\u003e\n\u003cli\u003ePublish the \u003ccode\u003eroman-numerals-rs\u003c/code\u003e crate using \u003ccode\u003eTrusted Publishing \u0026lt;https://crates.io/docs/trusted-publishing\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/AA-Turner/roman-numerals/commit/53c9c4eac63b91728fba3c26329163ee57654d21\"\u003e\u003ccode\u003e53c9c4e\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a3793b83fab7064107ac56a482a6fa93bc9c5048\"\u003e\u003ccode\u003ea3793b8\u003c/code\u003e\u003c/a\u003e Add more SAFETY notes and debug assertions to unsafe blocks (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/106\"\u003e#106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/46d346e2d08b634856c79783e404616b65626ba7\"\u003e\u003ccode\u003e46d346e\u003c/code\u003e\u003c/a\u003e Adjust annotations in light of PEP 649\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/b8fae405d948415f7397ae4f64569c53cb623105\"\u003e\u003ccode\u003eb8fae40\u003c/code\u003e\u003c/a\u003e Adjust an example in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a88464130711ad5e8d56e6ff747d17068ae17534\"\u003e\u003ccode\u003ea884641\u003c/code\u003e\u003c/a\u003e Restore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c3e1b6b4e6e02e5e19c26dc6f72bbb7b1060cca5\"\u003e\u003ccode\u003ec3e1b6b\u003c/code\u003e\u003c/a\u003e Release v4.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c335cb63ed97e684a4e9453639bfc7e9f487bb41\"\u003e\u003ccode\u003ec335cb6\u003c/code\u003e\u003c/a\u003e Add publishing step for the \u003ccode\u003eroman-numerals-py\u003c/code\u003e meta-package (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/105\"\u003e#105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/649f6e62e7bd24123d7dd489609ae47168aaeb1b\"\u003e\u003ccode\u003e649f6e6\u003c/code\u003e\u003c/a\u003e Add Trusted Publishing workflow for crates.io (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/104\"\u003e#104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/ffa4dd1b33eae62f1bd1d44549e10a528b8f1f58\"\u003e\u003ccode\u003effa4dd1\u003c/code\u003e\u003c/a\u003e rust: Refactor tests (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/26b41561c1d9813104548777b5ed9622d7125b38\"\u003e\u003ccode\u003e26b4156\u003c/code\u003e\u003c/a\u003e Simplify ASCII detection closures (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AA-Turner/roman-numerals/compare/v3.1.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.49.1 to 0.51.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.51.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease warning stacklevel on \u003ccode\u003eDeprecationWarning\u003c/code\u003e for wsgi module \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3082\"\u003e#3082\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/santibreo\"\u003e\u003ccode\u003e@​santibreo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3082\"\u003eKludex/starlette#3082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/iddqd888\"\u003e\u003ccode\u003e@​iddqd888\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3083\"\u003eKludex/starlette#3083\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.50.0...0.51.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.50.0...0.51.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.50.0\u003c/h2\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.3...0.50.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.3...0.50.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.3\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3059\"\u003e#3059\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.2...0.49.3\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.2...0.49.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.2\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore \u003ccode\u003eif-modified-since\u003c/code\u003e header if \u003ccode\u003eif-none-match\u003c/code\u003e is present in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3044\"\u003e#3044\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.49.2\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.1...0.49.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.51.0 (January 10, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease warning stacklevel on \u003ccode\u003eDeprecationWarning\u003c/code\u003e for wsgi module \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3082\"\u003e#3082\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.50.0 (November 1, 2025)\u003c/h2\u003e\n\u003ch4\u003eRemoved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.3 (November 1, 2025)\u003c/h2\u003e\n\u003cp\u003eThis is the last release that supports Python 3.9, which will be dropped in the next minor release.\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRelax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3059\"\u003e#3059\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.2 (November 1, 2025)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore \u003ccode\u003eif-modified-since\u003c/code\u003e header if \u003ccode\u003eif-none-match\u003c/code\u003e is present in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3044\"\u003e#3044\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/df2ee22bc072dc19962120a7559f8fc0de7a094e\"\u003e\u003ccode\u003edf2ee22\u003c/code\u003e\u003c/a\u003e Version 0.51.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3097\"\u003e#3097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/66110293b822e997c8c2aa576b36d34a9507dd67\"\u003e\u003ccode\u003e6611029\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 4 updates (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3092\"\u003e#3092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3f75ee971cb81a8041183f442f6e1bb4e34518b3\"\u003e\u003ccode\u003e3f75ee9\u003c/code\u003e\u003c/a\u003e Update third-party-packages.md (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/081535ad9b46a29ca4d9beea9dea9d422b4c8f7d\"\u003e\u003ccode\u003e081535a\u003c/code\u003e\u003c/a\u003e chore: Increase warning stacklevel (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3082\"\u003e#3082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/8bb71d9d51126a2177f6dd2f9c636d88e5beb410\"\u003e\u003ccode\u003e8bb71d9\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3075\"\u003e#3075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/49d4de92867cb38a781069701ad57cecab4a1a36\"\u003e\u003ccode\u003e49d4de9\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3065\"\u003e#3065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4941b4a04993d087dea66e9287fe9472babee879\"\u003e\u003ccode\u003e4941b4a\u003c/code\u003e\u003c/a\u003e Version 0.50.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a0499f60a6f13b8b42381d70bafc076b6ece4eee\"\u003e\u003ccode\u003ea0499f6\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3061\"\u003e#3061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/de3ffecaeadd34612f71495374f5853edbda1bf2\"\u003e\u003ccode\u003ede3ffec\u003c/code\u003e\u003c/a\u003e Version 0.49.3 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3062\"\u003e#3062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/c4433960ccc07289e0963df94dc5c2746f07ca1a\"\u003e\u003ccode\u003ec443396\u003c/code\u003e\u003c/a\u003e Relax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3059\"\u003e#3059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.51.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typing-extensions` from 4.14.1 to 4.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/releases\"\u003etyping-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003cp\u003eNew features since 4.14.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.15.0rc1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/blob/main/CHANGELOG.md\"\u003etyping-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.15.0 (August 25, 2025)\u003c/h1\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003ch1\u003eRelease 4.15.0rc1 (August 18, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/9d1637e264b5c1a6b7acee3e907015f89b20c2c9\"\u003e\u003ccode\u003e9d1637e\u003c/code\u003e\u003c/a\u003e Prepare release 4.15.0 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/4bd67c5be5d9443c7d33c314d02a56ee125eb88d\"\u003e\u003ccode\u003e4bd67c5\u003c/code\u003e\u003c/a\u003e Coverage: exclude some noise (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/656\"\u003e#656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e589a26da73b075c5276bae40b86db1af0144f84\"\u003e\u003ccode\u003ee589a26\u003c/code\u003e\u003c/a\u003e Coverage: add detailed report to job summary (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/67d37fed1298e050f74d5acc95b2621bd37837ad\"\u003e\u003ccode\u003e67d37fe\u003c/code\u003e\u003c/a\u003e Coverage: Implement fail_under (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/654\"\u003e#654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e9ae26f5286edee9262727755ecb9ad16e999192\"\u003e\u003ccode\u003ee9ae26f\u003c/code\u003e\u003c/a\u003e Don't delete previous coverage comment (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/653\"\u003e#653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/ac80bb728a3006fc88ef7373b92f0c25cfcc7895\"\u003e\u003ccode\u003eac80bb7\u003c/code\u003e\u003c/a\u003e Add Coverage workflow (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/623\"\u003e#623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/abaaafd98c1cc7e5baf098ec287a3d22cb339670\"\u003e\u003ccode\u003eabaaafd\u003c/code\u003e\u003c/a\u003e Prepare release 4.15.0rc1 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/650\"\u003e#650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/98104053ea8d49bcdd247804e5fa9f73136acbd4\"\u003e\u003ccode\u003e9810405\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e@disjoint_base\u003c/code\u003e (PEP 800) (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/634\"\u003e#634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/7ee9e05fd484d06899ce56e80f5e1aa4c760fc03\"\u003e\u003ccode\u003e7ee9e05\u003c/code\u003e\u003c/a\u003e Backport type_params fix from CPython (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/646\"\u003e#646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/1e8eb9c06ef51b3a1e1f05303a16feca13f5ed98\"\u003e\u003ccode\u003e1e8eb9c\u003c/code\u003e\u003c/a\u003e Do not refer to PEP 705 as being experimental (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/typing_extensions/compare/4.14.1...4.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.6.0 to 2.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by \u003ca href=\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-38jv-5279-wg99)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by default. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003eurllib3/urllib3#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003eurllib3/urllib3#3752\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.3 (2026-01-07)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a high-severity security issue where decompression-bomb safeguards of\nthe streaming API were bypassed when HTTP redirects were followed.\n(\u003ccode\u003eGHSA-38jv-5279-wg99 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by\ndefault. (\u003ccode\u003e[#3743](https://github.com/urllib3/urllib3/issues/3743) \u0026lt;https://github.com/urllib3/urllib3/issues/3743\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten.\n(\u003ccode\u003e[#3752](https://github.com/urllib3/urllib3/issues/3752) \u0026lt;https://github.com/urllib3/urllib3/issues/3752\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.2 (2025-12-11)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in\nthe decoder's buffer when reading compressed chunked responses.\n(\u003ccode\u003e[#3734](https://github.com/urllib3/urllib3/issues/3734) \u0026lt;https://github.com/urllib3/urllib3/issues/3734\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.1 (2025-12-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods.\n(\u003ccode\u003e[#3731](https://github.com/urllib3/urllib3/issues/3731) \u0026lt;https://github.com/urllib3/urllib3/issues/3731\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/0248277dd7ac0239204889ca991353ad3e3a1ddc\"\u003e\u003ccode\u003e0248277\u003c/code\u003e\u003c/a\u003e Release 2.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8864ac407bba8607950025e0979c4c69bc7abc7b\"\u003e\u003ccode\u003e8864ac4\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/70cecb27ca99d56aaaeb63ac27ee270ef2b24c5c\"\u003e\u003ccode\u003e70cecb2\u003c/code\u003e\u003c/a\u003e Fix Scorecard issues related to vulnerable dev dependencies (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3755\"\u003e#3755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/41f249abe1ef3e20768588969c4035aba060a359\"\u003e\u003ccode\u003e41f249a\u003c/code\u003e\u003c/a\u003e Move \u0026quot;v2.0 Migration Guide\u0026quot; to the end of the table of contents (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3747\"\u003e#3747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/fd4dffd2fc544166b76151a2fa3d7b7c0eab540c\"\u003e\u003ccode\u003efd4dffd\u003c/code\u003e\u003c/a\u003e Patch \u003ccode\u003eVerifiedHTTPSConnection\u003c/code\u003e for Emscripten (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/13f0bfd55e4468fe1ea9c6f809d3a87b0f93ebab\"\u003e\u003ccode\u003e13f0bfd\u003c/code\u003e\u003c/a\u003e Handle massive values in Retry-After when calculating time to sleep for (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003e#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8c480bf87bcefd321b3a1ae47f04e908b6b2ed7b\"\u003e\u003ccode\u003e8c480bf\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3748\"\u003e#3748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/4b40616e959c0a2c466e8075f2a785a9f99bb0c1\"\u003e\u003ccode\u003e4b40616\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.3.0 to 5.0.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3750\"\u003e#3750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/82b8479663d037d220c883f1584dd01a43bb273b\"\u003e\u003ccode\u003e82b8479\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3749\"\u003e#3749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/34284cb01700bb7d4fdd472f909e22393e9174e2\"\u003e\u003ccode\u003e34284cb\u003c/code\u003e\u003c/a\u003e Mention experimental features in the security policy (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.6.0...2.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.35.0 to 0...\n\n_Description has been truncated_","html_url":"https://github.com/freedomofpress/securedrop-workstation-docs/pull/366","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/freedomofpress%2Fsecuredrop-workstation-docs/issues/366","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/366/packages"},{"uuid":"3802743037","node_id":"PR_kwDOMftbFc68njza","number":188,"state":"closed","title":"Bump the py-updates 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-01-19T04:50:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-12T04:41:08.000Z","updated_at":"2026-01-19T04:50:44.000Z","time_to_close":605375,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"py-updates","update_count":79,"packages":[{"name":"awscli","old_version":"1.40.17","new_version":"1.44.15","repository_url":"https://github.com/aws/aws-cli"},{"name":"polars","old_version":"1.28.1","new_version":"1.37.0","repository_url":"https://github.com/pola-rs/polars"},{"name":"requests","old_version":"2.32.3","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"biopython","old_version":"1.85","new_version":"1.86","repository_url":"https://github.com/biopython/biopython"},{"name":"boto3","old_version":"1.38.18","new_version":"1.42.25","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.38.18","new_version":"1.42.25","repository_url":"https://github.com/boto/botocore"},{"name":"certifi","old_version":"2025.4.26","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"cloudpathlib","old_version":"0.21.1","new_version":"0.23.0","repository_url":"https://github.com/drivendataorg/cloudpathlib"},{"name":"docutils","old_version":"0.19","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown-it-py","old_version":"3.0.0","new_version":"4.0.0","repository_url":"https://github.com/executablebooks/markdown-it-py"},{"name":"numpy","old_version":"2.2.5","new_version":"2.4.1","repository_url":"https://github.com/numpy/numpy"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pyarrow","old_version":"20.0.0","new_version":"22.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"rich","old_version":"14.0.0","new_version":"14.2.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rsa","old_version":"4.7.2","new_version":"4.9.1","repository_url":"https://github.com/sybrenstuvel/python-rsa"},{"name":"s3transfer","old_version":"0.12.0","new_version":"0.16.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"structlog","old_version":"25.3.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"tzdata","old_version":"2025.2","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"},{"name":"boto3-stubs","old_version":"1.38.18","new_version":"1.42.25","repository_url":"https://github.com/youtype/mypy_boto3_builder"},{"name":"botocore-stubs","old_version":"1.38.18","new_version":"1.42.25","repository_url":"https://github.com/youtype/botocore-stubs"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"coverage","old_version":"7.8.0","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cryptography","old_version":"44.0.3","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"freezegun","old_version":"1.5.1","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"iniconfig","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"moto","old_version":"5.1.4","new_version":"5.1.19","repository_url":"https://github.com/getmoto/moto"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"mypy-boto3-s3","old_version":"1.38.0","new_version":"1.42.21","repository_url":"https://github.com/youtype/mypy_boto3_builder"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"responses","old_version":"0.25.7","new_version":"0.25.8","repository_url":"https://github.com/getsentry/responses"},{"name":"ruff","old_version":"0.11.10","new_version":"0.14.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-awscrt","old_version":"0.27.2","new_version":"0.30.0","repository_url":"https://github.com/youtype/types-awscrt"},{"name":"types-requests","old_version":"2.32.0.20250515","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-s3transfer","old_version":"0.12.0","new_version":"0.16.0","repository_url":"https://github.com/youtype/types-s3transfer"},{"name":"typing-extensions","old_version":"4.13.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"xmltodict","old_version":"0.14.2","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"alabaster","old_version":"0.7.16","new_version":"1.0.0","repository_url":"https://github.com/sphinx-doc/alabaster"},{"name":"anyio","old_version":"4.9.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.3"},{"name":"cachecontrol","old_version":"0.14.3","new_version":"0.14.4","repository_url":"https://github.com/psf/cachecontrol"},{"name":"click","old_version":"8.2.0","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":"filelock","old_version":"3.18.0","new_version":"3.20.3","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.58.0","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"furo","old_version":"2024.8.6","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"kiwisolver","old_version":"1.4.8","new_version":"1.4.9","repository_url":"https://github.com/nucleic/kiwi"},{"name":"matplotlib","old_version":"3.10.3","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mdit-py-plugins","old_version":"0.4.2","new_version":"0.5.0","repository_url":"https://github.com/executablebooks/mdit-py-plugins"},{"name":"more-itertools","old_version":"10.7.0","new_version":"10.8.0","repository_url":"https://github.com/more-itertools/more-itertools"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.1.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"pillow","old_version":"11.2.1","new_version":"12.1.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.3.1","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"ruamel-yaml","old_version":"0.18.10","new_version":"0.19.1"},{"name":"ruamel-yaml-clib","old_version":"0.2.12","new_version":"0.2.15"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"sphinx","old_version":"7.3.7","new_version":"9.0.4","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-autodoc-typehints","old_version":"2.3.0","new_version":"3.6.1","repository_url":"https://github.com/tox-dev/sphinx-autodoc-typehints"},{"name":"sphinx-jinja2-compat","old_version":"0.3.0","new_version":"0.4.1","repository_url":"https://github.com/sphinx-toolbox/sphinx-jinja2-compat"},{"name":"sphinx-prompt","old_version":"1.8.0","new_version":"1.10.2","repository_url":"https://github.com/sbrunner/sphinx-prompt"},{"name":"sphinx-tabs","old_version":"3.4.5","new_version":"3.4.7","repository_url":"https://github.com/executablebooks/sphinx-tabs"},{"name":"sphinx-toolbox","old_version":"4.0.0","new_version":"4.1.1","repository_url":"https://github.com/sphinx-toolbox/sphinx-toolbox"},{"name":"sphinxext-opengraph","old_version":"0.10.0","new_version":"0.13.0","repository_url":"https://github.com/sphinx-doc/sphinxext-opengraph"},{"name":"starlette","old_version":"0.46.2","new_version":"0.51.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"uvicorn","old_version":"0.34.2","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.0.5","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"}],"path":null,"ecosystem":"pip"},"body":"Bumps the py-updates group with 79 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [awscli](https://github.com/aws/aws-cli) | `1.40.17` | `1.44.15` |\n| [polars](https://github.com/pola-rs/polars) | `1.28.1` | `1.37.0` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.32.5` |\n| [biopython](https://github.com/biopython/biopython) | `1.85` | `1.86` |\n| [boto3](https://github.com/boto/boto3) | `1.38.18` | `1.42.25` |\n| [botocore](https://github.com/boto/botocore) | `1.38.18` | `1.42.25` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.4.26` | `2026.1.4` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.4` |\n| [cloudpathlib](https://github.com/drivendataorg/cloudpathlib) | `0.21.1` | `0.23.0` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.19` | `0.22.4` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `3.0.0` | `4.0.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.2.5` | `2.4.1` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [pyarrow](https://github.com/apache/arrow) | `20.0.0` | `22.0.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.2.0` |\n| [rsa](https://github.com/sybrenstuvel/python-rsa) | `4.7.2` | `4.9.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.12.0` | `0.16.0` |\n| [structlog](https://github.com/hynek/structlog) | `25.3.0` | `25.5.0` |\n| [tzdata](https://github.com/python/tzdata) | `2025.2` | `2025.3` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.6.3` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n| [boto3-stubs](https://github.com/youtype/mypy_boto3_builder) | `1.38.18` | `1.42.25` |\n| [botocore-stubs](https://github.com/youtype/botocore-stubs) | `1.38.18` | `1.42.25` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.8.0` | `7.13.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.3` | `46.0.3` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.5.1` | `1.5.5` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [moto](https://github.com/getmoto/moto) | `5.1.4` | `5.1.19` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [mypy-boto3-s3](https://github.com/youtype/mypy_boto3_builder) | `1.38.0` | `1.42.21` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [responses](https://github.com/getsentry/responses) | `0.25.7` | `0.25.8` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.10` | `0.14.11` |\n| [types-awscrt](https://github.com/youtype/types-awscrt) | `0.27.2` | `0.30.0` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20250515` | `2.32.4.20260107` |\n| [types-s3transfer](https://github.com/youtype/types-s3transfer) | `0.12.0` | `0.16.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.13.2` | `4.15.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.14.2` | `1.0.2` |\n| [alabaster](https://github.com/sphinx-doc/alabaster) | `0.7.16` | `1.0.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.12.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.3` |\n| [cachecontrol](https://github.com/psf/cachecontrol) | `0.14.3` | `0.14.4` |\n| [click](https://github.com/pallets/click) | `8.2.0` | `8.3.1` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.20.3` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.58.0` | `4.61.1` |\n| [furo](https://github.com/pradyunsg/furo) | `2024.8.6` | `2025.12.19` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.8` | `1.4.9` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.3` | `3.10.8` |\n| [mdit-py-plugins](https://github.com/executablebooks/mdit-py-plugins) | `0.4.2` | `0.5.0` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.7.0` | `10.8.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.1.2` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.1.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.5.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.3.1` |\n| ruamel-yaml | `0.18.10` | `0.19.1` |\n| ruamel-yaml-clib | `0.2.12` | `0.2.15` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.3.7` | `9.0.4` |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-autodoc-typehints](https://github.com/tox-dev/sphinx-autodoc-typehints) | `2.3.0` | `3.6.1` |\n| [sphinx-jinja2-compat](https://github.com/sphinx-toolbox/sphinx-jinja2-compat) | `0.3.0` | `0.4.1` |\n| [sphinx-prompt](https://github.com/sbrunner/sphinx-prompt) | `1.8.0` | `1.10.2` |\n| [sphinx-tabs](https://github.com/executablebooks/sphinx-tabs) | `3.4.5` | `3.4.7` |\n| [sphinx-toolbox](https://github.com/sphinx-toolbox/sphinx-toolbox) | `4.0.0` | `4.1.1` |\n| [sphinxext-opengraph](https://github.com/sphinx-doc/sphinxext-opengraph) | `0.10.0` | `0.13.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.46.2` | `0.51.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.2` | `0.40.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.0.5` | `1.1.1` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n\n\nUpdates `awscli` from 1.40.17 to 1.44.15\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/56a551a5916a09423336124a8967615e0d0be143\"\u003e\u003ccode\u003e56a551a\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.15'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/b78a64f27cce6dc86754f39196b44f5b1a7f266d\"\u003e\u003ccode\u003eb78a64f\u003c/code\u003e\u003c/a\u003e Bumping version to 1.44.15\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/715bce7cf992e841f04b6b15c701d4292450d9d6\"\u003e\u003ccode\u003e715bce7\u003c/code\u003e\u003c/a\u003e Update changelog based on model updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/72510f852833ea976520851bda26757265c6c207\"\u003e\u003ccode\u003e72510f8\u003c/code\u003e\u003c/a\u003e Create update-vpc-link.rst (\u003ca href=\"https://redirect.github.com/aws/aws-cli/issues/9405\"\u003e#9405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/d6a71c953a9155fceb7fcecf4246718153522c4d\"\u003e\u003ccode\u003ed6a71c9\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.14'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/b2be64a7c3c8747a0cfd7b174307409f9c130420\"\u003e\u003ccode\u003eb2be64a\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.14' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/95337ce8110bbd70efef24b8255892a374698e52\"\u003e\u003ccode\u003e95337ce\u003c/code\u003e\u003c/a\u003e Bumping version to 1.44.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/3224f1b5e55abc438d1f86f06a70fef3dbaa89ca\"\u003e\u003ccode\u003e3224f1b\u003c/code\u003e\u003c/a\u003e Update changelog based on model updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/d90b023b6b34361dec3bffee9b64f62d662fa3d7\"\u003e\u003ccode\u003ed90b023\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.13'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/76549b03313edbe5b8e011b9cf35e3e89b5d5387\"\u003e\u003ccode\u003e76549b0\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.13' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aws/aws-cli/compare/1.40.17...1.44.15\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `polars` from 1.28.1 to 1.37.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pola-rs/polars/releases\"\u003epolars's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePython Polars 1.37.0\u003c/h2\u003e\n\u003ch2\u003e🚀 Performance improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up \u003ccode\u003eSQL\u003c/code\u003e interface \u0026quot;ORDER BY\u0026quot; clauses (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26037\"\u003e#26037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd fast kernel for is_nan and use it for numpy NaN-\u0026gt;null conversion (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26034\"\u003e#26034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize ArrayFromIter implementations for ObjectArray (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25712\"\u003e#25712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew streaming NDJSON sink pipeline (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25948\"\u003e#25948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew streaming CSV sink pipeline (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25900\"\u003e#25900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDispatch partitioned usage of \u003ccode\u003esink_*\u003c/code\u003e functions to new-streaming by default (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25910\"\u003e#25910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace ryu with faster zmij (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25885\"\u003e#25885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce memory usage for .item() count in grouped first/last (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25787\"\u003e#25787\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip schema inference if schema provided for \u003ccode\u003escan_csv/ndjson\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25757\"\u003e#25757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd width-aware chunking to prevent degradation with wide data (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25764\"\u003e#25764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse new sink pipeline for write/sink_ipc (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25746\"\u003e#25746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce memory usage when scanning multiple parquet files in streaming (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25747\"\u003e#25747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't call cluster_with_columns optimization if not needed (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25724\"\u003e#25724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e✨ Enhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new \u003ccode\u003epl.PartitionBy\u003c/code\u003e API (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26004\"\u003e#26004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eArrowStreamExportable and sink_delta (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25994\"\u003e#25994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRelease musl builds (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25894\"\u003e#25894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement streaming decompression for CSV \u003ccode\u003eCOUNT(*)\u003c/code\u003e fast path (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25988\"\u003e#25988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd nulls support for rolling_mean_by (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25917\"\u003e#25917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd lazy \u003ccode\u003ecollect_all\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25991\"\u003e#25991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd streaming decompression for NDJSON schema inference (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25992\"\u003e#25992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved handling of unqualified SQL \u003ccode\u003eJOIN\u003c/code\u003e columns that are ambiguous (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25761\"\u003e#25761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25984\"\u003e#25984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpose record batch size in \u003ccode\u003e{sink,write}_ipc\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25958\"\u003e#25958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003enull_on_oob\u003c/code\u003e parameter to \u003ccode\u003eexpr.get\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25957\"\u003e#25957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSuggest correct timezone if timezone validation fails (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25937\"\u003e#25937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport streaming IPC scan from S3 object store (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25868\"\u003e#25868\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement streaming CSV schema inference (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25911\"\u003e#25911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport hashing of meta expressions (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25916\"\u003e#25916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003eSQLContext\u003c/code\u003e recognition of possible table objects in the Python globals (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25749\"\u003e#25749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd pl.Expr.(min|max)_by (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25905\"\u003e#25905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove MemSlice Debug impl (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25913\"\u003e#25913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement or fix json encode/decode for (U)Int128, Categorical, Enum, Decimal (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25896\"\u003e#25896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand scatter to more dtypes (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25874\"\u003e#25874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement streaming CSV decompression (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25842\"\u003e#25842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Series \u003ccode\u003esql\u003c/code\u003e method for API consistency (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25792\"\u003e#25792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMark Polars as safe for free-threading (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25677\"\u003e#25677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Binary and Decimal in arg_(min|max) (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25839\"\u003e#25839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow Decimal parsing in str.json_decode (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25797\"\u003e#25797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eshift\u003c/code\u003e support for Object data type (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25769\"\u003e#25769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing \u003ccode\u003eSeries.arr.mean\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25774\"\u003e#25774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow scientific notation when parsing Decimals (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25711\"\u003e#25711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐞 Bug fixes\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/pola-rs/polars/commit/1674b37a0a066e76d33eb8f66d31fd870c0cd52d\"\u003e\u003ccode\u003e1674b37\u003c/code\u003e\u003c/a\u003e Python Polars 1.37.0 (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26038\"\u003e#26038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/4c49bf5ebb9208e70a84a7effdc5368bc901ba84\"\u003e\u003ccode\u003e4c49bf5\u003c/code\u003e\u003c/a\u003e perf: Speed up \u003ccode\u003eSQL\u003c/code\u003e interface \u0026quot;ORDER BY\u0026quot; clauses (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26037\"\u003e#26037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/c1b9d86310269ae4ab22a9bff87d8f2657c8b050\"\u003e\u003ccode\u003ec1b9d86\u003c/code\u003e\u003c/a\u003e chore: Update rust compiler (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26017\"\u003e#26017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/68911e4e9f7a2bdedca6d3aefa208a6ec02cf8ad\"\u003e\u003ccode\u003e68911e4\u003c/code\u003e\u003c/a\u003e chore: Improve csv test coverage (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25980\"\u003e#25980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/5f25b4f6b828bcd5df1116b0517358ad51c51529\"\u003e\u003ccode\u003e5f25b4f\u003c/code\u003e\u003c/a\u003e perf: Add fast kernel for is_nan and use it for numpy NaN-\u0026gt;null conversion (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/59463cefe36550547b50e5c6801b1d98516cc0c8\"\u003e\u003ccode\u003e59463ce\u003c/code\u003e\u003c/a\u003e docs(python): Fix display of deprecation warning (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26010\"\u003e#26010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/21721eba70b9fc18dff58958997c151dfe214903\"\u003e\u003ccode\u003e21721eb\u003c/code\u003e\u003c/a\u003e fix(python): Release GIL on collect_batches (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26033\"\u003e#26033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/778dbb645ccbff8b1e5999a279037571a03c718b\"\u003e\u003ccode\u003e778dbb6\u003c/code\u003e\u003c/a\u003e fix: Missing buffer update in String is_in Parquet pushdown (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26019\"\u003e#26019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/807cfc5a2eae6af453b14a1663e74d07202ce92e\"\u003e\u003ccode\u003e807cfc5\u003c/code\u003e\u003c/a\u003e fix: Make \u003ccode\u003estruct.with_fields\u003c/code\u003e data model coherent (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25610\"\u003e#25610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/e6d62387f64b225754c15ad1e0b3d4f981509692\"\u003e\u003ccode\u003ee6d6238\u003c/code\u003e\u003c/a\u003e refactor(rust): Use \u003ccode\u003efrom_any_values_and_dtype\u003c/code\u003e in \u003ccode\u003eSeries::extend_constant\u003c/code\u003e ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pola-rs/polars/compare/py-1.28.1...py-1.37.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.32.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6965\"\u003e#6965\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS.\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `biopython` from 1.85 to 1.86\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/biopython/biopython/blob/master/NEWS.rst\"\u003ebiopython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e28 October 2025: Biopython 1.86\u003c/h1\u003e\n\u003cp\u003eThis release of Biopython supports Python 3.10, 3.11, 3.12, 3.13 and 3.14.  It\nhas also been tested on PyPy3.10 v7.3.19.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.SearchIO\u003c/code\u003e now supports parsing the tabular and plain text output of\n\u003ccode\u003eInfernal \u0026lt;http://eddylab.org/infernal/\u0026gt;\u003c/code\u003e (v1.0.0+) RNA search tool. The\nformat names are \u003ccode\u003einfernal-tab\u003c/code\u003e and \u003ccode\u003einfernal-text\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe default value of the gap score of a \u003ccode\u003ePairwiseAligner\u003c/code\u003e object was changed\nin this release.  Previously, for consistency with \u003ccode\u003eBio.pairwise2\u003c/code\u003e, the\ndefault value for gap score was 0.  However, this means that a mismatch, an\ninsertion followed by a deletion, and a deletion followed by an insertion all\nget assigned a score of 0.  The aligner then finds a large number of alignments\nthat are logically the same, but have trivial differences between them.  For\nexample, aligning AAACAAA to AAAGAAA previously yielded the following three\nalignments, all with score 6::\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e AAACAAA        AAAC-AAA        AAA-CAAA\n AAAGAAA        AAA-GAAA        AAAG-AAA\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eWith the new default parameter for the gap score, only the first alignment is\nreturned.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.PDB.PDBIO\u003c/code\u003e now ensures that b-factor values are always at most 6 characters to\nensure that we do not violate the wwPDB specification. This should not have an impact\non the majority of uses, as b-factor values are generally small (less than 100). When\n1000 \u0026lt;= b-factor \u0026lt; 10_000, the value is rounded to a single decimal place. When,\n10_000 \u0026lt;= b-factor \u0026lt; 999_999, the value is rounded to zero decimal places. Values\nabove 999_999 are now clamped. The justification for this is the rise in the b-factor\nfield being used for additional metadata, typically from computational tools.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.Align\u003c/code\u003e now provides a method \u003ccode\u003eAlignment.from_alignments_with_same_reference\u003c/code\u003e\nto construct a multiple sequence alignment from a collection of alignments\nthat share the same reference sequence.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.PDB.PDBIO\u003c/code\u003e will now raise module specific warnings:\n\u003ccode\u003eBio.PDB.PDBExceptions.PDBIOWarning\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.PDB.SCADIO\u003c/code\u003e now supports object selection by color in the OpenSCAD\noutput file.  This enables generation of separate STL files for each color for\nprinting protein structures on multi-material 3D printers.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eiplotx\u003c/code\u003e library is mentioned in the Tutorial as an option to visualise\ntrees using complex style options.\u003c/p\u003e\n\u003cp\u003eMany thanks to the Biopython developers and community for making this release\npossible, especially the following contributors:\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\u003eSee full diff in \u003ca href=\"https://github.com/biopython/biopython/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.38.18 to 1.42.25\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/8dd60074e59d29c733b6b6eefad3a75ab615090b\"\u003e\u003ccode\u003e8dd6007\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.25'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/0bf89db7865cfef4ed697b92199c093ca6f5f803\"\u003e\u003ccode\u003e0bf89db\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/34bf8f819c2870d7baa90c6e65f83dea34586bdd\"\u003e\u003ccode\u003e34bf8f8\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/9b8fbad82f97a16e4b468b7f9ff83bafa2e8d55d\"\u003e\u003ccode\u003e9b8fbad\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.24'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/6dda579bbbeafe145506fb40a65a2f7979f196c2\"\u003e\u003ccode\u003e6dda579\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.24' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/dc3945deb487ce84d804cb813b8075461973041f\"\u003e\u003ccode\u003edc3945d\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/60784e3398975b90331d227e1377a42232fd3f8a\"\u003e\u003ccode\u003e60784e3\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/dae67fb6753924da30b42cc61dc0d940a672afbd\"\u003e\u003ccode\u003edae67fb\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.23'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c7b7d4157a8130921bf9e7bef024a1dd17eaf600\"\u003e\u003ccode\u003ec7b7d41\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.23' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/95878f640e54fa7658e242eb2213d361b92162c2\"\u003e\u003ccode\u003e95878f6\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.23\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.38.18...1.42.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `botocore` from 1.38.18 to 1.42.25\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/a35f376045da3bc2dcf0de2c1346482ce1ad30c7\"\u003e\u003ccode\u003ea35f376\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.25'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/721ab7860e75d7c5ef5c0eda91f18c568b2f31e1\"\u003e\u003ccode\u003e721ab78\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/b4541b5471194a63234467945b97397e42e265e4\"\u003e\u003ccode\u003eb4541b5\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/90830226c8e3cd3b96755c3b71be3314225871e3\"\u003e\u003ccode\u003e9083022\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/331cd6689f458e58465234ad58a60881d49007fa\"\u003e\u003ccode\u003e331cd66\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.24'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/47f2b30e092fd853d28193d60cb10acf8a89b5ec\"\u003e\u003ccode\u003e47f2b30\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.24' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/230fac5f074e94b3c32f112624c04224d123873d\"\u003e\u003ccode\u003e230fac5\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/cc102f140d97d286544a36adb5c3fc6043c50321\"\u003e\u003ccode\u003ecc102f1\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/beaeab5eee438b737029aa27c7b7641ec89ba3ad\"\u003e\u003ccode\u003ebeaeab5\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/f6e323727729fb2aa26ec9f8362de39d6adf1d2e\"\u003e\u003ccode\u003ef6e3237\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.23'\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.38.18...1.42.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.4.26 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.04.26...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cloudpathlib` from 0.21.1 to 0.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/drivendataorg/cloudpathlib/releases\"\u003ecloudpathlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14 (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/529\"\u003e#529\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/530\"\u003e#530\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eChanged \u003ccode\u003eCloudPath.copy\u003c/code\u003e to have the first parameter named \u003ccode\u003etarget\u003c/code\u003e instead of \u003ccode\u003edestination\u003c/code\u003e and added new \u003ccode\u003efollow_symlinks\u003c/code\u003e and \u003ccode\u003epreserve_metadata\u003c/code\u003e kwargs. \u003cstrong\u003eBreaking change for users that relied on the first parameter being named \u003ccode\u003edestination\u003c/code\u003e instead of \u003ccode\u003etarget\u003c/code\u003e.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.copy_into\u003c/code\u003e to copy a file or directory into another file or directory.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.move\u003c/code\u003e to move a file or directory to another location.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.move_into\u003c/code\u003e to move a file or directory into another file or directory.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPathInfo\u003c/code\u003e and \u003ccode\u003eCloudPath.info\u003c/code\u003e to get information about a file or directory.\u003c/li\u003e\n\u003cli\u003eAdded additional no-op kwargs to \u003ccode\u003emkdir\u003c/code\u003e, \u003ccode\u003etouch\u003c/code\u003e, \u003ccode\u003eglob\u003c/code\u003e, \u003ccode\u003erglob\u003c/code\u003e, \u003ccode\u003estat\u003c/code\u003e to match pathlib.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue with GS credentials, using default auth enables a wider set of authentication methods in GS (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/390\"\u003e#390\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/514\"\u003e#514\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ljyanesm\"\u003e\u003ccode\u003e@​ljyanesm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for http(s) urls with \u003ccode\u003eHttpClient\u003c/code\u003e, \u003ccode\u003eHttpPath\u003c/code\u003e, \u003ccode\u003eHttpsClient\u003c/code\u003e, and \u003ccode\u003eHttpsPath\u003c/code\u003e. (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/455\"\u003e#455\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded experimental support for patching the builtins \u003ccode\u003eopen\u003c/code\u003e, \u003ccode\u003eos\u003c/code\u003e, \u003ccode\u003eos.path\u003c/code\u003e, and \u003ccode\u003eglob\u003c/code\u003e to work with \u003ccode\u003eCloudPath\u003c/code\u003e objects. It is off by default; see the new \u0026quot;Compatibility\u0026quot; section in the docs for more information. (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/128\"\u003e#128\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/322\"\u003e#322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eCloudPath(*parts)\u003c/code\u003e to create a \u003ccode\u003eCloudPath\u003c/code\u003e object from a list of parts (to match \u003ccode\u003epathlib.Path\u003c/code\u003e). \u003cstrong\u003eThis is a potentially breaking change for users that relied on the second arg being the \u003ccode\u003eclient\u003c/code\u003e instead of making it an explicit kwarg.\u003c/strong\u003e (PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/322\"\u003e#322\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/drivendataorg/cloudpathlib/blob/master/HISTORY.md\"\u003ecloudpathlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.23.0 (2025-10-07)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14 (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/529\"\u003e#529\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/530\"\u003e#530\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eChanged \u003ccode\u003eCloudPath.copy\u003c/code\u003e to have the first parameter named \u003ccode\u003etarget\u003c/code\u003e instead of \u003ccode\u003edestination\u003c/code\u003e and added new \u003ccode\u003efollow_symlinks\u003c/code\u003e and \u003ccode\u003epreserve_metadata\u003c/code\u003e kwargs. \u003cstrong\u003eBreaking change for users that relied on the first parameter being named \u003ccode\u003edestination\u003c/code\u003e instead of \u003ccode\u003etarget\u003c/code\u003e.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.copy_into\u003c/code\u003e to copy a file or directory into another file or directory.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.move\u003c/code\u003e to move a file or directory to another location.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.move_into\u003c/code\u003e to move a file or directory into another file or directory.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPathInfo\u003c/code\u003e and \u003ccode\u003eCloudPath.info\u003c/code\u003e to get information about a file or directory.\u003c/li\u003e\n\u003cli\u003eAdded additional no-op kwargs to \u003ccode\u003emkdir\u003c/code\u003e, \u003ccode\u003etouch\u003c/code\u003e, \u003ccode\u003eglob\u003c/code\u003e, \u003ccode\u003erglob\u003c/code\u003e, \u003ccode\u003estat\u003c/code\u003e to match pathlib.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.22.0 (2025-08-29)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue with GS credentials, using default auth enables a wider set of authentication methods in GS (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/390\"\u003e#390\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/514\"\u003e#514\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ljyanesm\"\u003e\u003ccode\u003e@​ljyanesm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for http(s) urls with \u003ccode\u003eHttpClient\u003c/code\u003e, \u003ccode\u003eHttpPath\u003c/code\u003e, \u003ccode\u003eHttpsClient\u003c/code\u003e, and \u003ccode\u003eHttpsPath\u003c/code\u003e. (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/455\"\u003e#455\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded experimental support for patching the builtins \u003ccode\u003eopen\u003c/code\u003e, \u003ccode\u003eos\u003c/code\u003e, \u003ccode\u003eos.path\u003c/code\u003e, and \u003ccode\u003eglob\u003c/code\u003e to work with \u003ccode\u003eCloudPath\u003c/code\u003e objects. It is off by default; see the new \u0026quot;Compatibility\u0026quot; section in the docs for more information. (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/128\"\u003e#128\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/322\"\u003e#322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eCloudPath(*parts)\u003c/code\u003e to create a \u003ccode\u003eCloudPath\u003c/code\u003e object from a list of parts (to match \u003ccode\u003epathlib.Path\u003c/code\u003e). \u003cstrong\u003eThis is a potentially breaking change for users that relied on the second arg being the \u003ccode\u003eclient\u003c/code\u003e instead of making it an explicit kwarg.\u003c/strong\u003e (PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/322\"\u003e#322\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/drivendataorg/cloudpathlib/commit/28f1d943078517262d045ae50136edf27a5298a1\"\u003e\u003ccode\u003e28f1d94\u003c/code\u003e\u003c/a\u003e WIP Support 3.14 (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/fec5918d6725e9f1f52bee003528f4f854454980\"\u003e\u003ccode\u003efec5918\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish in /.github/workflows (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/e7900023bf4b32b70ca5b2d798f9ce52187582f8\"\u003e\u003ccode\u003ee790002\u003c/code\u003e\u003c/a\u003e version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/bb1f1e4cb5eba0928cec2aaff30cb0f5ace1f108\"\u003e\u003ccode\u003ebb1f1e4\u003c/code\u003e\u003c/a\u003e WIP: Patch open, os and os.path builtins (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/322\"\u003e#322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/12005505fc29ab4183968022a487416a31b1a1bd\"\u003e\u003ccode\u003e1200550\u003c/code\u003e\u003c/a\u003e Refactor GS authentication to use default credentials (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/514\"\u003e#514\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/526\"\u003e#526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/b21cac14f0090021594f7e3afae9c48f5d7dbd46\"\u003e\u003ccode\u003eb21cac1\u003c/code\u003e\u003c/a\u003e Implement HTTP(s) support (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/863e884cbf1cf141cdf7bf9c0623e0cd3d27841d\"\u003e\u003ccode\u003e863e884\u003c/code\u003e\u003c/a\u003e fix for azure typing differences (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/65c5c012bd4297ce4e812cfb8bbf9827db346e03\"\u003e\u003ccode\u003e65c5c01\u003c/code\u003e\u003c/a\u003e Set pytest-cases\u0026gt;=3.9.1 (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/drivendataorg/cloudpathlib/compare/v0.21.1...v0.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `docutils` from 0.19 to 0.22.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rtfd/recommonmark/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.10 to 3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown-it-py` from 3.0.0 to 4.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/markdown-it-py/releases\"\u003emarkdown-it-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis primarily drops support for Python 3.8 and 3.9, adds support for Python 3.13,\nand updates the parser to comply with Commonmark 0.31.2 and Markdown-It v14.1.0.\u003c/p\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Drop Python 3.8, test 3.13 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/342\"\u003eexecutablebooks/markdown-it-py#342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Drop support for Python 3.9 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/360\"\u003eexecutablebooks/markdown-it-py#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Comply with Commonmark 0.31.2 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/362\"\u003eexecutablebooks/markdown-it-py#362\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👌 Improve performance of \u0026quot;text\u0026quot; inline rule by \u003ca href=\"https://github.com/hukkin\"\u003e\u003ccode\u003e@​hukkin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/347\"\u003eexecutablebooks/markdown-it-py#347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 Use \u003ccode\u003estr.removesuffix\u003c/code\u003e by \u003ca href=\"https://github.com/hukkin\"\u003e\u003ccode\u003e@​hukkin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/348\"\u003eexecutablebooks/markdown-it-py#348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 limit the number of autocompleted cells in a table by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/364\"\u003eexecutablebooks/markdown-it-py#364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 fix quadratic complexity in reference parser by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/367\"\u003eexecutablebooks/markdown-it-py#367\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix emphasis inside raw links bugs by \u003ca href=\"https://github.com/tsutsu3\"\u003e\u003ccode\u003e@​tsutsu3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/320\"\u003eexecutablebooks/markdown-it-py#320\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Replace black and isort with ruff formatter by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/313\"\u003eexecutablebooks/markdown-it-py#313\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Fixed Code Style paragraph still referring to flake8 by \u003ca href=\"https://github.com/venthur\"\u003e\u003ccode\u003e@​venthur\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/309\"\u003eexecutablebooks/markdown-it-py#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Add \u0026quot;store_labels\u0026quot; to OptionsType by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/343\"\u003eexecutablebooks/markdown-it-py#343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Move \u003ccode\u003ecode_style\u003c/code\u003e to dependency group by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/344\"\u003eexecutablebooks/markdown-it-py#344\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Update codecov action by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/345\"\u003eexecutablebooks/markdown-it-py#345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Update pre-commit and upload-artifact by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/359\"\u003eexecutablebooks/markdown-it-py#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Improve spec update script by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/361\"\u003eexecutablebooks/markdown-it-py#361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 simplify logic in scanDelims by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/365\"\u003eexecutablebooks/markdown-it-py#365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🧪 Add CI testing for Python 3.12 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/303\"\u003eexecutablebooks/markdown-it-py#303\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🧪 Fix codecov by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/332\"\u003eexecutablebooks/markdown-it-py#332\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📚 Fix typo by \u003ca href=\"https://github.com/bwagner\"\u003e\u003ccode\u003e@​bwagner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/315\"\u003eexecutablebooks/markdown-it-py#315\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Fix RTD build by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/322\"\u003eexecutablebooks/markdown-it-py#322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 DOCS: Fix a few old URLs by \u003ca href=\"https://github.com/elijahgreenstein\"\u003e\u003ccode\u003e@​elijahgreenstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/358\"\u003eexecutablebooks/markdown-it-py#358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Improve README by \u003ca href=\"https://github.com/mrmurilo75\"\u003e\u003ccode\u003e@​mrmurilo75\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/340\"\u003eexecutablebooks/markdown-it-py#340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Fix CI badge link by \u003ca href=\"https://github.com/tsutsu3\"\u003e\u003ccode\u003e@​tsutsu3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/291\"\u003eexecutablebooks/markdown-it-py#291\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Update docs by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/292\"\u003eexecutablebooks/markdown-it-py#292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Add icon to readme by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/293\"\u003eexecutablebooks/markdown-it-py#293\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Update icon by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/294\"\u003eexecutablebooks/markdown-it-py#294\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 DOCS: Clarify docs regarding security configuration by \u003ca href=\"https://github.com/djramones\"\u003e\u003ccode\u003e@​djramones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/296\"\u003eexecutablebooks/markdown-it-py#296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Fix the RTD build by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/311\"\u003eexecutablebooks/markdown-it-py#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 DOCS: Fix typos by \u003ca href=\"https://github.com/elijahgreenstein\"\u003e\u003ccode\u003e@​elijahgreenstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/366\"\u003eexecutablebooks/markdown-it-py#366\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/executablebooks/markdown-it-py/blob/master/CHANGELOG.md\"\u003emarkdown-it-py's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.0 - 2024-08-10\u003c/h2\u003e\n\u003cp\u003eThis primarily drops support for Python 3.9, adds support for Python 3.13,\nand updates the parser to comply with Commonmark 0.31.2 and Markdown-It v14.1.0.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Drop support for Python 3.9 in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/360\"\u003e#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Comply with Commonmark 0.31.2 in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/362\"\u003e#362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 Improve performance of \u0026quot;text\u0026quot; inline rule in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/347\"\u003e#347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 Use \u003ccode\u003estr.removesuffix\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/348\"\u003e#348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 limit the number of autocompleted cells in a table in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/364\"\u003e#364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 fix quadratic complexity in reference parser in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/367\"\u003e#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 Fix emphasis inside raw links bugs in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/320\"\u003e#320\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/markdown-it-py/compare/v3.0.0...v4.0.0\"\u003ehttps://github.com/executablebooks/markdown-it-py/compare/v3.0.0...v4.0.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/executablebooks/markdown-it-py/commit/c62983f1554124391b47170180e6c62df4d476ca\"\u003e\u003ccode\u003ec62983f\u003c/code\u003e\u003c/a\u003e 🚀 RELEASE v4.0.0 (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/368\"\u003e#368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/9e93bd554147ffb8582581e14620c7611103d2ff\"\u003e\u003ccode\u003e9e93bd5\u003c/code\u003e\u003c/a\u003e 👌 fix quadratic complexity in reference parser (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/da45c8764b2077425c091fa1811bbb1c5f211bd1\"\u003e\u003ccode\u003eda45c87\u003c/code\u003e\u003c/a\u003e 📚 DOCS: Fix typos (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/87b16e272bf8207182084e07a63253b98fc437d7\"\u003e\u003ccode\u003e87b16e2\u003c/code\u003e\u003c/a\u003e 🔧 simplify logic in scanDelims (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/e4009641db528444b85d384af815e9cad997a016\"\u003e\u003ccode\u003ee400964\u003c/code\u003e\u003c/a\u003e 👌 limit the number of autocompleted cells in a table (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/4535d77edcb5f51450a266135687eeae8bcc5033\"\u003e\u003ccode\u003e4535d77\u003c/code\u003e\u003c/a\u003e ⬆️ Comply with Commonmark 0.31.2 (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/8eb20ac1cb63e09dcd78e84a0c71dab8446bb73c\"\u003e\u003ccode\u003e8eb20ac\u003c/code\u003e\u003c/a\u003e 🔧 Improve spec update script (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/fb9d3ab646e4f752dc8fd52e1dd7613c350ff190\"\u003e\u003ccode\u003efb9d3ab\u003c/code\u003e\u003c/a\u003e ⬆️ Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/9ffe841832d33264201aaff120349f001a02953a\"\u003e\u003ccode\u003e9ffe841\u003c/code\u003e\u003c/a\u003e 📚 DOCS: Fix a few old URLs (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/154fe43feb17947e2c933d0bb3e26618129909a8\"\u003e\u003ccode\u003e154fe43\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit and upload-artifact (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/executablebooks/markdown-it-py/compare/v3.0.0...v4.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.2.5 to 2.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.1 (Jan 10, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.1 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.1 is a patch release that fixes bugs discoved after the\n2.4.0 release. In particular, the typo \u003ccode\u003eSeedlessSequence\u003c/code\u003e is preserved to\nenable wheels using the random Cython API and built against NumPy \u0026lt; 2.4.0\nto run without errors.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 9 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAlexander Shadchin\u003c/li\u003e\n\u003cli\u003eBill Tompkins +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMarten van Kerkwijk\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eRaghuveer Devulapalli\u003c/li\u003e\n\u003cli\u003eRalf Gommers\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 15 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30490\"\u003e#30490\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30503\"\u003e#30503\u003c/a\u003e: DOC: \u003ccode\u003enumpy.select\u003c/code\u003e: fix \u003ccode\u003edefault\u003c/code\u003e parameter docstring...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30504\"\u003e#30504\u003c/a\u003e: REV: Revert part of \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30164\"\u003e#30164\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30500\"\u003e#30500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30506\"\u003e#30506\u003c/a\u003e: TYP: \u003ccode\u003enumpy.select\u003c/code\u003e: allow passing array-like \u003ccode\u003edefault\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30507\"\u003e#30507\u003c/a\u003e: MNT: use if constexpr for compile-time branch selection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30513\"\u003e#30513\u003c/a\u003e: BUG: Fix leak in flat assignment iterator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30516\"\u003e#30516\u003c/a\u003e: BUG: fix heap overflow in fixed-width string multiply (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30511\"\u003e#30511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30523\"\u003e#30523\u003c/a\u003e: BUG: Ensure summed weights returned by np.average always are...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30527\"\u003e#30527\u003c/a\u003e: TYP: Fix return type of histogram2d\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30594\"\u003e#30594\u003c/a\u003e: MAINT: avoid passing ints to random functions that take double...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30595\"\u003e#30595\u003c/a\u003e: BLD: Avoiding conflict with pygit2 for static build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30596\"\u003e#30596\u003c/a\u003e: MAINT: Fix msvccompiler missing error on FreeBSD\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30608\"\u003e#30608\u003c/a\u003e: BLD: update vendored Meson to 1.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30620\"\u003e#30620\u003c/a\u003e: ENH: use more fine-grained critical sections in array coercion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30623\"\u003e#30623\u003c/a\u003e: BUG: Undo result type change of quantile/percentile but keep...\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.4.0 (Dec 20, 2025)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.0 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.0 release continues the work to improve free threaded Python\nsupport, user dtypes implementation, and annotations. There are many expired\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/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst\"\u003enumpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis is a walkthrough of the NumPy 2.4.0 release on Linux, which will be the\nfirst feature release using the \u003ccode\u003enumpy/numpy-release \u0026lt;https://github.com/numpy/numpy-release\u0026gt;\u003c/code\u003e__ repository.\u003c/p\u003e\n\u003cp\u003eThe comm...\n\n_Description has been truncated_","html_url":"https://github.com/reichlab/cladetime/pull/188","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/reichlab%2Fcladetime/issues/188","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/188/packages"},{"uuid":"3793728220","node_id":"PR_kwDOO_6LKs68KjBC","number":18,"state":"closed","title":"chore(deps): bump the poetry-dependencies group across 1 directory with 69 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-01T04:42:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-08T17:20:39.000Z","updated_at":"2026-02-01T04:42:39.000Z","time_to_close":2028118,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"poetry-dependencies","update_count":69,"packages":[{"name":"click","old_version":"8.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"matplotlib","old_version":"3.10.3","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"scipy","old_version":"1.16.0","new_version":"1.16.3","repository_url":"https://github.com/scipy/scipy"},{"name":"gmsh","old_version":"4.14.0","new_version":"4.15.0"},{"name":"pyvista","old_version":"0.46.2","new_version":"0.46.4","repository_url":"https://github.com/pyvista/pyvista"},{"name":"pypardiso","old_version":"0.4.6","new_version":"0.4.7","repository_url":"https://github.com/haasad/PyPardiso"},{"name":"pyside6","old_version":"6.9.2","new_version":"6.10.1"},{"name":"black","old_version":"25.1.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.9.1","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2024.8.6","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.16.1","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pre-commit-hooks","old_version":"5.0.0","new_version":"6.0.0","repository_url":"https://github.com/pre-commit/pre-commit-hooks"},{"name":"ruff","old_version":"0.12.0","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx","old_version":"8.1.3","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-autodoc-typehints","old_version":"3.0.1","new_version":"3.5.2","repository_url":"https://github.com/tox-dev/sphinx-autodoc-typehints"},{"name":"sphinx-click","old_version":"6.0.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"xdoctest","old_version":"1.2.0","new_version":"1.3.0","repository_url":"https://github.com/Erotemic/xdoctest"},{"name":"anyio","old_version":"4.9.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.3"},{"name":"certifi","old_version":"2025.6.15","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.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"contourpy","old_version":"1.3.2","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"filelock","old_version":"3.18.0","new_version":"3.20.2","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.58.4","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"identify","old_version":"2.6.12","new_version":"2.6.15","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":"intel-openmp","old_version":"2025.2.1","new_version":"2025.3.1"},{"name":"ipython","old_version":"8.37.0","new_version":"9.9.0","repository_url":"https://github.com/ipython/ipython"},{"name":"kiwisolver","old_version":"1.4.8","new_version":"1.4.9","repository_url":"https://github.com/nucleic/kiwi"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"mdit-py-plugins","old_version":"0.4.2","new_version":"0.5.0","repository_url":"https://github.com/executablebooks/mdit-py-plugins"},{"name":"mkl","old_version":"2025.2.0","new_version":"2025.3.0","repository_url":"https://github.com/uxlfoundation/oneMath"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pathspec","old_version":"0.12.1","new_version":"1.0.2","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"pillow","old_version":"11.2.1","new_version":"12.1.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"pyinstaller-hooks-contrib","old_version":"2025.10","new_version":"2025.11","repository_url":"https://github.com/pyinstaller/pyinstaller-hooks-contrib"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.3.1","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.1.0","new_version":"14.2.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.19.1"},{"name":"scooby","old_version":"0.10.1","new_version":"0.11.0","repository_url":"https://github.com/banesullivan/scooby"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.47.1","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"tbb","old_version":"2022.2.0","new_version":"2022.3.0","repository_url":"https://github.com/oneapi-src/oneTBB"},{"name":"tcmlib","old_version":"1.4.0","new_version":"1.4.1"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.34.3","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.31.2","new_version":"20.36.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"vtk","old_version":"9.5.0","new_version":"9.5.2"},{"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.13","new_version":"0.2.14","repository_url":"https://github.com/jquast/wcwidth"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 65 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.3` | `3.10.8` |\n| [scipy](https://github.com/scipy/scipy) | `1.16.0` | `1.16.3` |\n| [gmsh](https://gmsh.info) | `4.14.0` | `4.15.0` |\n| [pyvista](https://github.com/pyvista/pyvista) | `0.46.2` | `0.46.4` |\n| [pypardiso](https://github.com/haasad/PyPardiso) | `0.4.6` | `0.4.7` |\n| [pyside6](https://pyside.org) | `6.9.2` | `6.10.1` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.9.1` | `7.13.1` |\n| [furo](https://github.com/pradyunsg/furo) | `2024.8.6` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.16.1` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [pre-commit-hooks](https://github.com/pre-commit/pre-commit-hooks) | `5.0.0` | `6.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.0` | `0.14.10` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `9.0.2` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `8.1.3` | `8.2.3` |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-autodoc-typehints](https://github.com/tox-dev/sphinx-autodoc-typehints) | `3.0.1` | `3.5.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.0.0` | `6.2.0` |\n| [xdoctest](https://github.com/Erotemic/xdoctest) | `1.2.0` | `1.3.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.12.1` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `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.2` | `3.4.4` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.20.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.58.4` | `4.61.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.12` | `2.6.15` |\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| [intel-openmp](https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html) | `2025.2.1` | `2025.3.1` |\n| [ipython](https://github.com/ipython/ipython) | `8.37.0` | `9.9.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.8` | `1.4.9` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [mdit-py-plugins](https://github.com/executablebooks/mdit-py-plugins) | `0.4.2` | `0.5.0` |\n| [mkl](https://github.com/uxlfoundation/oneMath) | `2025.2.0` | `2025.3.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `0.12.1` | `1.0.2` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.1.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.5.1` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [pyinstaller-hooks-contrib](https://github.com/pyinstaller/pyinstaller-hooks-contrib) | `2025.10` | `2025.11` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.3.1` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rich](https://github.com/Textualize/rich) | `14.1.0` | `14.2.0` |\n| ruamel-yaml | `0.18.14` | `0.19.1` |\n| [scooby](https://github.com/banesullivan/scooby) | `0.10.1` | `0.11.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8.1` |\n| [starlette](https://github.com/Kludex/starlette) | `0.47.1` | `0.50.0` |\n| [tbb](https://github.com/oneapi-src/oneTBB) | `2022.2.0` | `2022.3.0` |\n| [tcmlib](https://oneapi-src.github.io/oneTBB/GSG/next_steps.html) | `1.4.0` | `1.4.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.3` | `0.40.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.31.2` | `20.36.0` |\n| [vtk](https://vtk.org) | `9.5.0` | `9.5.2` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n\n\nUpdates `click` from 8.2.1 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/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.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.3 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\u003ch2\u003eREL: v3.10.6\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eHighlights from this release include:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Fix regression of hi-dpi support for Qt\n- Fix race condition in TexManager.make_dvi \u0026amp; make_png\n- Various documentation and other bugfixes\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eREL: v3.10.5\u003c/h2\u003e\n\u003cp\u003eThis is the fourth bugfix release of the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eIncluded in this release is distributed wheels for Python 3.14 (including freethreaded) and Windows ARM.\u003c/p\u003e\n\u003cp\u003eThere are also several smaller bugfixes.\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.3...v3.10.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scipy` from 1.16.0 to 1.16.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scipy/scipy/releases\"\u003escipy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eSciPy 1.16.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.16.3\u003c/code\u003e is a bug-fix release with no new features compared to \u003ccode\u003e1.16.2\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eAuthors\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eName (commits)\u003c/li\u003e\n\u003cli\u003eChrisAB (1) +\u003c/li\u003e\n\u003cli\u003eLucas Colley (1)\u003c/li\u003e\n\u003cli\u003eRalf Gommers (3)\u003c/li\u003e\n\u003cli\u003eMatt Haberland (8)\u003c/li\u003e\n\u003cli\u003eNick ODell (2)\u003c/li\u003e\n\u003cli\u003eIlhan Polat (1)\u003c/li\u003e\n\u003cli\u003eTyler Reddy (28)\u003c/li\u003e\n\u003cli\u003eLucas Roberts (2)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA total of 8 people contributed to this release.\nPeople with a \u0026quot;+\u0026quot; by their names contributed a patch for the first time.\nThis list of names is automatically generated, and may not be fully complete.\u003c/p\u003e\n\u003cp\u003eThe full issue and pull request lists, and the release asset hashes are available\nin the associated \u003ccode\u003eREADME.txt\u003c/code\u003e file.\u003c/p\u003e\n\u003ch1\u003eSciPy 1.16.2 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.16.2\u003c/code\u003e is a bug-fix release with no new features\ncompared to \u003ccode\u003e1.16.1\u003c/code\u003e. This is the first stable release of\nSciPy to provide Windows on ARM wheels on PyPI.\u003c/p\u003e\n\u003ch1\u003eAuthors\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eName (commits)\u003c/li\u003e\n\u003cli\u003eDietrich Brunn (1)\u003c/li\u003e\n\u003cli\u003eRalf Gommers (6)\u003c/li\u003e\n\u003cli\u003eAdam Jones (1)\u003c/li\u003e\n\u003cli\u003eGleb Khmyznikov (1) +\u003c/li\u003e\n\u003cli\u003eJost Migenda (1) +\u003c/li\u003e\n\u003cli\u003enewyork_loki (1)\u003c/li\u003e\n\u003cli\u003eNick ODell (3)\u003c/li\u003e\n\u003cli\u003eDimitri Papadopoulos Orfanos (1)\u003c/li\u003e\n\u003cli\u003eIlhan Polat (2)\u003c/li\u003e\n\u003cli\u003eTyler Reddy (26)\u003c/li\u003e\n\u003cli\u003eMugunthan Selvanayagam (1) +\u003c/li\u003e\n\u003cli\u003eShuhei Watanabe (1) +\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA total of 12 people contributed to this release.\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/scipy/scipy/commit/b9105ccc2237f57acb1060202cd77f6dd264fb34\"\u003e\u003ccode\u003eb9105cc\u003c/code\u003e\u003c/a\u003e REL: 1.16.3 rel commit [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/4b7699ceb2e7070e732f9a7e24aab46683f41305\"\u003e\u003ccode\u003e4b7699c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/23805\"\u003e#23805\u003c/a\u003e from tylerjereddy/treddy_backports_1.16.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/874b75b11d09373c4e7b4fd12975f27d52af4714\"\u003e\u003ccode\u003e874b75b\u003c/code\u003e\u003c/a\u003e MAINT: PR 23805 wheel builds [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/de06a58d65ee0c0266ceb3adaca82c5405206bc4\"\u003e\u003ccode\u003ede06a58\u003c/code\u003e\u003c/a\u003e DOC: PR 23805 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/f642304717d140ede11bb095ee7cc5754e075d1d\"\u003e\u003ccode\u003ef642304\u003c/code\u003e\u003c/a\u003e TST: linalg.svd: skip on 32-bit due to limited memory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/df479083772fbfae5840c198f53ee938ffcd6dc6\"\u003e\u003ccode\u003edf47908\u003c/code\u003e\u003c/a\u003e CI: PR 23805 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/f5840635ec2ae1d3ff023159c5e58936e9a2303d\"\u003e\u003ccode\u003ef584063\u003c/code\u003e\u003c/a\u003e TST: stats.boxcox_llf: bump test tolerance for Accelerate (\u003ca href=\"https://redirect.github.com/scipy/scipy/issues/23864\"\u003e#23864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/fc60b2f449100a55bdb23777b6b5adc3cb38d61a\"\u003e\u003ccode\u003efc60b2f\u003c/code\u003e\u003c/a\u003e DOC: PR 23805 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/0dd12ec9b92338005959bde3611375ceea18f73a\"\u003e\u003ccode\u003e0dd12ec\u003c/code\u003e\u003c/a\u003e BLD: stats.multivariate_normal: silence pythran build warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/d3b1e625735c1e7c8e9963f5f7c2dd5755636f9d\"\u003e\u003ccode\u003ed3b1e62\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;BLD: stats.multivariate_normal: suppress pythran build warning\u0026quot;\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scipy/scipy/compare/v1.16.0...v1.16.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gmsh` from 4.14.0 to 4.15.0\n\nUpdates `pyvista` from 0.46.2 to 0.46.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyvista/pyvista/releases\"\u003epyvista's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.46.4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix obb tree cache (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/8039\"\u003e#8039\u003c/a\u003e) backport to v0.46 by \u003ca href=\"https://github.com/user27182\"\u003e\u003ccode\u003e@​user27182\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyvista/pyvista/pull/8041\"\u003epyvista/pyvista#8041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyvista/pyvista/compare/v0.46.3...v0.46.4\"\u003ehttps://github.com/pyvista/pyvista/compare/v0.46.3...v0.46.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.46.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003ePyVista \u003ccode\u003e0.46.0\u003c/code\u003e introduced a breaking change by requiring the use of \u003ccode\u003epyvista.set_new_attribute\u003c/code\u003e for setting new attributes (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/7716\"\u003e#7716\u003c/a\u003e). This patch release \u003ccode\u003e0.46.3\u003c/code\u003e relaxes this requirement by only requiring this for setting new \u003cem\u003epublic\u003c/em\u003e attributes. Private attributes (with a \u003ccode\u003e_\u003c/code\u003e prefix) can be set without the need to use \u003ccode\u003epyvista.set_new_attribute\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyvista/pyvista/compare/v0.46.2...v0.46.3\"\u003ehttps://github.com/pyvista/pyvista/compare/v0.46.2...v0.46.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyvista/pyvista/commit/eabebf9d2977ee0027d6f8e4d1c03ab39f03e8a9\"\u003e\u003ccode\u003eeabebf9\u003c/code\u003e\u003c/a\u003e Fix obb tree cache (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/8039\"\u003e#8039\u003c/a\u003e) backport to v0.46 (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/8041\"\u003e#8041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyvista/pyvista/commit/a6fa92498a9896bdba7d495b39273151c6e68cfa\"\u003e\u003ccode\u003ea6fa924\u003c/code\u003e\u003c/a\u003e Allow setting new private attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyvista/pyvista/commit/dfa05fe8c21b0f72516b8dd7e1695fce8633b000\"\u003e\u003ccode\u003edfa05fe\u003c/code\u003e\u003c/a\u003e Bump version to 0.46.3\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyvista/pyvista/compare/v0.46.2...v0.46.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypardiso` from 0.4.6 to 0.4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/haasad/PyPardiso/releases\"\u003epypardiso's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.7\u003c/h2\u003e\n\u003cp\u003e5 changes since v0.4.6\u003c/p\u003e\n\u003ch2\u003e🚧 Breaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for macOS (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/83\"\u003e#83\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix failing tests for pip installed scipy (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix type mismatch for sparse arrays (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/79\"\u003e#79\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📄 Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse a valid SPDX identifier as license classifier (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/81\"\u003e#81\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚚 CI and Packaging\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun tests for currently supported Python versions (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/84\"\u003e#84\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/haasad/PyPardiso/commit/d78ba0108c09a391b99567877be7a45aefc8beb4\"\u003e\u003ccode\u003ed78ba01\u003c/code\u003e\u003c/a\u003e Fix license configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/2b287ca57b1c9919ca927bc6eeb8a136badb9260\"\u003e\u003ccode\u003e2b287ca\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/79\"\u003e#79\u003c/a\u003e from urob/fix-type-mismatch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/04effe91176b7b2e3cf7a85be5fc97be4ec39450\"\u003e\u003ccode\u003e04effe9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/81\"\u003e#81\u003c/a\u003e from ecederstrand/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/405844b87dbbf111a77668088cac4d4900fef5ce\"\u003e\u003ccode\u003e405844b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/84\"\u003e#84\u003c/a\u003e from haasad/maint/python-versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/f5c7999884b5e8eb71e64ce39fb43f1ff8dd755a\"\u003e\u003ccode\u003ef5c7999\u003c/code\u003e\u003c/a\u003e Run tests for currently supported Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/d5eec2fdb417bb331ae5de2358ffbc691bb20cde\"\u003e\u003ccode\u003ed5eec2f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/83\"\u003e#83\u003c/a\u003e from haasad/breaking/remove-macos-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/c1da59caa1e53aa527aab261662087b2f7465ec6\"\u003e\u003ccode\u003ec1da59c\u003c/code\u003e\u003c/a\u003e Remove support for macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/53b301b48cadf086e0056c34fc6bf24a21566b35\"\u003e\u003ccode\u003e53b301b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/82\"\u003e#82\u003c/a\u003e from haasad/fix/scipy-error-groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/5a759de7aba8d91ed6e2d1b2585686deed12f4f0\"\u003e\u003ccode\u003e5a759de\u003c/code\u003e\u003c/a\u003e Update changelog config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/a3ec43e43b4110b4696f44b0cb7207441af7bf58\"\u003e\u003ccode\u003ea3ec43e\u003c/code\u003e\u003c/a\u003e Test for ValueError or TypeError\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/haasad/PyPardiso/compare/v0.4.6...v0.4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyside6` from 6.9.2 to 6.10.1\n\nUpdates `black` from 25.1.0 to 25.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\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\u003c!-- 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\u003e25.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.13.1\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.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\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\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/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.9.1...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2024.8.6 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\u003ch2\u003e2025.09.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epage.html: fix invalid HTML5 by \u003ca href=\"https://github.com/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/894\"\u003epradyunsg/furo#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebase.html: fix trailing slash on void elements by \u003ca href=\"https://github.com/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/895\"\u003epradyunsg/furo#895\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e_scaffold.sass: remove old scrollbar selectors by \u003ca href=\"https://github.com/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/892\"\u003epradyunsg/furo#892\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Blender to \u0026quot;used by\u0026quot; section by \u003ca href=\"https://github.com/struffel\"\u003e\u003ccode\u003e@​struffel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/898\"\u003epradyunsg/furo#898\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/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/894\"\u003epradyunsg/furo#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/struffel\"\u003e\u003ccode\u003e@​struffel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/898\"\u003epradyunsg/furo#898\u003c/a\u003e\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.07.19...2025.09.25\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.07.19...2025.09.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2025.07.19\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u0026quot;debug printf\u0026quot; for headerTop value by \u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/847\"\u003epradyunsg/furo#847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/826\"\u003epradyunsg/furo#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/861\"\u003epradyunsg/furo#861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/873\"\u003epradyunsg/furo#873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd rel=edit attribute to \u0026quot;Edit this page\u0026quot; link/icon by \u003ca href=\"https://github.com/capjamesg\"\u003e\u003ccode\u003e@​capjamesg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/880\"\u003epradyunsg/furo#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/879\"\u003epradyunsg/furo#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix flickering header drop shadow by \u003ca href=\"https://github.com/holesch\"\u003e\u003ccode\u003e@​holesch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/884\"\u003epradyunsg/furo#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake current page section detection resilient to sticky elements above header by \u003ca href=\"https://github.com/Eric-Arellano\"\u003e\u003ccode\u003e@​Eric-Arellano\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/664\"\u003epradyunsg/furo#664\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/capjamesg\"\u003e\u003ccode\u003e@​capjamesg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/880\"\u003epradyunsg/furo#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holesch\"\u003e\u003ccode\u003e@​holesch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/884\"\u003epradyunsg/furo#884\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2024.08.06...2025.07.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2024.08.06...2025.07.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\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/7c5f8fac52926f4854141cb5bf374c1681aedbec\"\u003e\u003ccode\u003e7c5f8fa\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.09.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/8bfdc54b2e8803450a2cb5dcab643a40b6934be2\"\u003e\u003ccode\u003e8bfdc54\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d92b62fee4cedd5b2ac1d267353d96541c9e0fb0\"\u003e\u003ccode\u003ed92b62f\u003c/code\u003e\u003c/a\u003e Switch the dark mode theme back to \u003ccode\u003enative\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/83c3446288014357bb8a7875bb81b664b7f15896\"\u003e\u003ccode\u003e83c3446\u003c/code\u003e\u003c/a\u003e Add Blender to \u0026quot;used by\u0026quot; section (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/898\"\u003e#898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/426ea05d879ee7dfdf74ba7c8b089f73081abbfd\"\u003e\u003ccode\u003e426ea05\u003c/code\u003e\u003c/a\u003e Remove old scrollbar selectors (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/892\"\u003e#892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d22d31c4b196a29092ac606737b6e9a7ae99273a\"\u003e\u003ccode\u003ed22d31c\u003c/code\u003e\u003c/a\u003e Remove trailing slash on void elements (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pradyunsg/furo/compare/2024.08.06...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.16.1 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.16.1...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.2.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\u003ch2\u003epre-commit v4.3.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.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...\n\n_Description has been truncated_","html_url":"https://github.com/DanBeranek/temperatureanalysis/pull/18","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanBeranek%2Ftemperatureanalysis/issues/18","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/18/packages"},{"uuid":"3783160396","node_id":"PR_kwDOOSUfDM67noj9","number":109,"state":"open","title":"Bump sphinx-autobuild from 2024.10.3 to 2025.8.25","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-05T23:20:42.000Z","updated_at":"2026-01-05T23:20:56.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) from 2024.10.3 to 2025.8.25.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\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=sphinx-autobuild\u0026package-manager=pip\u0026previous-version=2024.10.3\u0026new-version=2025.8.25)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/crate/cratedb-mcp/pull/109","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/crate%2Fcratedb-mcp/issues/109","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/109/packages"},{"uuid":"3782875779","node_id":"PR_kwDOBVeD0c67mstt","number":503,"state":"closed","title":"Update sphinx-autobuild requirement from ==2024.10.* to ==2025.8.*","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-14T11:06:26.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-05T21:12:08.000Z","updated_at":"2026-01-14T11:06:28.000Z","time_to_close":741258,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"sphinx-autobuild","old_version":"==2024.10.*","new_version":"==2025.8.*","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/86e2f373802417c944fda6c2930c8c3c98c20218\"\u003e\u003ccode\u003e86e2f37\u003c/code\u003e\u003c/a\u003e Release 2024.10.03\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.02...2025.08.25\"\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 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/common-workflow-language/user_guide/pull/503","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/common-workflow-language%2Fuser_guide/issues/503","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/503/packages"},{"uuid":"3782509929","node_id":"PR_kwDOJ3hC9s67lfhi","number":38,"state":"closed","title":"Bump sphinx-autobuild from 2024.10.3 to 2025.8.25","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-12T07:32:58.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-05T18:40:55.000Z","updated_at":"2026-01-12T07:33:00.000Z","time_to_close":564723,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) from 2024.10.3 to 2025.8.25.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\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=sphinx-autobuild\u0026package-manager=pip\u0026previous-version=2024.10.3\u0026new-version=2025.8.25)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/valberg/django-registries/pull/38","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/valberg%2Fdjango-registries/issues/38","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/38/packages"},{"uuid":"3782468642","node_id":"PR_kwDONOBvIM67lW2I","number":254,"state":"closed","title":"Update sphinx-autobuild requirement from ==2024.10.* to ==2025.8.*","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-02-17T15:03:05.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-05T18:23:53.000Z","updated_at":"2026-02-17T15:03:21.000Z","time_to_close":3703152,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"sphinx-autobuild","old_version":"==2024.10.*","new_version":"==2025.8.*","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/86e2f373802417c944fda6c2930c8c3c98c20218\"\u003e\u003ccode\u003e86e2f37\u003c/code\u003e\u003c/a\u003e Release 2024.10.03\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.02...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nYou can trigger a rebase of this PR by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/BSC-ES/autosubmit-api/pull/254","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/BSC-ES%2Fautosubmit-api/issues/254","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/254/packages"},{"uuid":"3774027573","node_id":"PR_kwDOOpylys67K2JX","number":17,"state":"open","title":"deps(poetry): bump the poetry-deps group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["Jekwwer"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-01T02:17:54.000Z","updated_at":"2026-01-01T02:19:27.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(poetry): bump","group_name":"poetry-deps","update_count":11,"packages":[{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.2.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-xdist","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"ruff","old_version":"0.11.13","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.16.1","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"sphinx","old_version":"8.2.3","new_version":"9.1.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-autoapi","old_version":"3.6.0","new_version":"3.6.1","repository_url":"https://github.com/readthedocs/sphinx-autoapi"},{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-deps group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `9.0.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.2.1` | `7.0.0` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.7.0` | `3.8.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.13` | `0.14.10` |\n| [mypy](https://github.com/python/mypy) | `1.16.1` | `1.19.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `8.2.3` | `9.1.0` |\n| [sphinx-autoapi](https://github.com/readthedocs/sphinx-autoapi) | `3.6.0` | `3.6.1` |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n\n\nUpdates `pre-commit` from 4.2.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\u003ch2\u003epre-commit v4.3.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.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\u003ch1\u003e4.3.0 - 2025-08-09\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/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.2.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 `pytest` from 8.4.1 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.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 6.2.1 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for subprocesses measurement.\u003c/p\u003e\n\u003cp\u003eIt was a feature added long time ago when coverage lacked a nice way to measure subprocesses created in tests.\nIt relied on a \u003ccode\u003e.pth\u003c/code\u003e file, there was no way to opt-out and it created bad interations\nwith \u003ccode\u003ecoverage's new patch system \u0026lt;https://coverage.readthedocs.io/en/latest/config.html#run-patch\u0026gt;\u003c/code\u003e_ added\nin \u003ccode\u003e7.10 \u0026lt;https://coverage.readthedocs.io/en/7.10.6/changes.html#version-7-10-0-2025-07-24\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eTo migrate to this release you might need to enable the suprocess patch, example for \u003ccode\u003e.coveragerc\u003c/code\u003e:\u003c/p\u003e\n\u003cp\u003e.. code-block:: ini\u003c/p\u003e\n\u003cp\u003e[run]\npatch = subprocess\u003c/p\u003e\n\u003cp\u003eThis release also requires at least coverage 7.10.6.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched packaging to have metadata completely in \u003ccode\u003epyproject.toml\u003c/code\u003e and use \u003ccode\u003ehatchling \u0026lt;https://pypi.org/project/hatchling/\u0026gt;\u003c/code\u003e_ for\nbuilding.\nContributed by Ofek Lev in \u003ccode\u003e[#551](https://github.com/pytest-dev/pytest-cov/issues/551) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/551\u0026gt;\u003c/code\u003e_\nwith some extras in \u003ccode\u003e[#716](https://github.com/pytest-dev/pytest-cov/issues/716) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/716\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved some not really necessary testing deps like \u003ccode\u003esix\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.3.0 (2025-09-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for markdown reports.\nContributed by Marcos Boger in \u003ccode\u003e[#712](https://github.com/pytest-dev/pytest-cov/issues/712) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/712\u0026gt;\u003c/code\u003e_\nand \u003ccode\u003e[#714](https://github.com/pytest-dev/pytest-cov/issues/714) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/714\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed some formatting issues in docs.\nAnonymous contribution in \u003ccode\u003e[#706](https://github.com/pytest-dev/pytest-cov/issues/706) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/706\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/pytest-dev/pytest-cov/commit/224d8964caad90074a8cf6dc8720b8f70f31629b\"\u003e\u003ccode\u003e224d896\u003c/code\u003e\u003c/a\u003e Bump version: 6.3.0 → 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/73424e3999f865eac72e27f09d5fe11b9703cfd6\"\u003e\u003ccode\u003e73424e3\u003c/code\u003e\u003c/a\u003e Cleanup the docs a bit.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/36f1cc2967831dbd4c8aa70086fc86dc495f8b9a\"\u003e\u003ccode\u003e36f1cc2\u003c/code\u003e\u003c/a\u003e Bump pins in template.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f299c590a63a48e51e3ae949993dc7bb1f1d480d\"\u003e\u003ccode\u003ef299c59\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/25f0b2e0cdbc345c0d3e49170f7a328c3e0d805f\"\u003e\u003ccode\u003e25f0b2e\u003c/code\u003e\u003c/a\u003e Update docs/config.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/bb23eacc5531fb8f499213d8420407e0d72f88e3\"\u003e\u003ccode\u003ebb23eac\u003c/code\u003e\u003c/a\u003e Improve configuration docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/a19531e91e1ab753ccf648a2d9bab08a6fddebb9\"\u003e\u003ccode\u003ea19531e\u003c/code\u003e\u003c/a\u003e Switch from build/pre-commit to uv/prek - this should make this faster.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/82f999391073f2fb8ae422af452602f310086a2a\"\u003e\u003ccode\u003e82f9993\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/211b5cd41c29916bc643b4a11b00578ba4fd6fe8\"\u003e\u003ccode\u003e211b5cd\u003c/code\u003e\u003c/a\u003e Fix links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/97aadd74bcbc00a2078d240e8fe871dd62b83d80\"\u003e\u003ccode\u003e97aadd7\u003c/code\u003e\u003c/a\u003e Update some ci config, reformat and apply some lint fixes.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.2.1...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-xdist` from 3.7.0 to 3.8.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst\"\u003epytest-xdist's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003epytest-xdist 3.8.0 (2025-06-30)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#1083](https://github.com/pytest-dev/pytest-xdist/issues/1083) \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/1083\u0026gt;\u003c/code\u003e_: Add \u003ccode\u003e--no-loadscope-reorder\u003c/code\u003e and \u003ccode\u003e--loadscope-reorder\u003c/code\u003e option to control whether to automatically reorder tests in loadscope for tests where relative ordering matters. This only applies when using \u003ccode\u003eloadscope\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eFor example, [test_file_1, test_file_2, ..., test_file_n] are given as input test files, if \u003ccode\u003e--no-loadscope-reorder\u003c/code\u003e is used, for either worker, the \u003ccode\u003etest_file_a\u003c/code\u003e will be executed before \u003ccode\u003etest_file_b\u003c/code\u003e only if \u003ccode\u003ea \u0026lt; b\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe default behavior is to reorder the tests to maximize the number of tests that can be executed in parallel.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/1e3e4dc16523c8a8f6c67d95a950166420718c99\"\u003e\u003ccode\u003e1e3e4dc\u003c/code\u003e\u003c/a\u003e Release 3.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/600aad575a4e4382855145b0c464d51b8f0b7242\"\u003e\u003ccode\u003e600aad5\u003c/code\u003e\u003c/a\u003e Ensure all xdist group names are strings (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1216\"\u003e#1216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/9d7ba5b5fbbbe26793fbfb7cb1903eb69425cf09\"\u003e\u003ccode\u003e9d7ba5b\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--no-loadscope-reorder\u003c/code\u003e and \u003ccode\u003e--loadscope-reorder\u003c/code\u003e options (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1217\"\u003e#1217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/532f07fb181bb1546eda79bbe6b46bdb56c699e1\"\u003e\u003ccode\u003e532f07f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1210\"\u003e#1210\u003c/a\u003e from pytest-dev/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/0883ad085e0cf039c8ae13eb2789c1076544d225\"\u003e\u003ccode\u003e0883ad0\u003c/code\u003e\u003c/a\u003e Fix Path usage in \u003ccode\u003etest_rsync_roots_no_roots\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/58a51bc14015d211761e44c2bdacab09c3893668\"\u003e\u003ccode\u003e58a51bc\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/59a2ad0150697b9ff837f3ae8dcf6e074d5a114b\"\u003e\u003ccode\u003e59a2ad0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1220\"\u003e#1220\u003c/a\u003e from pytest-dev/dependabot/github_actions/github-act...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/d42b9c72044855236c68286ca3bdb34486a05872\"\u003e\u003ccode\u003ed42b9c7\u003c/code\u003e\u003c/a\u003e build(deps): bump hynek/build-and-inspect-python-package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/ebfcb99072aed3503fda5175245f28895a0204bb\"\u003e\u003ccode\u003eebfcb99\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1206\"\u003e#1206\u003c/a\u003e from pytest-dev/release-3.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/23b7fd6054298a530b02b33d07007b3082a36277\"\u003e\u003ccode\u003e23b7fd6\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1207\"\u003e#1207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-xdist/compare/v3.7.0...v3.8.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.9.1 to 7.13.1\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.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\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\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/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.9.1...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.11.13 to 0.14.10\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.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\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] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\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/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\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/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\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\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\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.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\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] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\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/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\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/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\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\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.9\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/astral-sh/ruff/commit/45bbb4cbffe73cf925d4579c2e3eb413e0539390\"\u003e\u003ccode\u003e45bbb4c\u003c/code\u003e\u003c/a\u003e Bump 0.14.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22058\"\u003e#22058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42b972753aa9737140d3c715dc1fa2a4d20eba02\"\u003e\u003ccode\u003e42b9727\u003c/code\u003e\u003c/a\u003e [ty] Use datatest instead of dirtest (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21937\"\u003e#21937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f7ec1784005ba8659203155dc0c195f746f8b45b\"\u003e\u003ccode\u003ef7ec178\u003c/code\u003e\u003c/a\u003e [ty] Gracefully handle client requests that can't be deserialized (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22051\"\u003e#22051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c31516473296a8b745af946b827d3342ef81060f\"\u003e\u003ccode\u003ec315164\u003c/code\u003e\u003c/a\u003e [ty] Don't suggest keyword statements when only expressions are valid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb1955e98c5bd35a322f58fcab5d68aab255a7a4\"\u003e\u003ccode\u003ebb1955e\u003c/code\u003e\u003c/a\u003e [ty] Use cursor context in a few more places...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/070e08a043f47845f60632b528ef27cc37078405\"\u003e\u003ccode\u003e070e08a\u003c/code\u003e\u003c/a\u003e [ty] Move \u003ccode\u003ecompletion\u003c/code\u003e function to the top\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bab3924833c9f432776f93d4ed83b6cfbafc20e3\"\u003e\u003ccode\u003ebab3924\u003c/code\u003e\u003c/a\u003e [ty] Refactor completion generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10748b2fdb021e4d8e548f09e8e182c69d7c1f5a\"\u003e\u003ccode\u003e10748b2\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/56539db5206c519d80446d96155ef832689c5a6e\"\u003e\u003ccode\u003e56539db\u003c/code\u003e\u003c/a\u003e [ty] Fix some configuration panics in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22040\"\u003e#22040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8d32ad1cab7b78675e8fe56740013d61e315142c\"\u003e\u003ccode\u003e8d32ad1\u003c/code\u003e\u003c/a\u003e [ty] Add support for attribute docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22036\"\u003e#22036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.11.13...0.14.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.16.1 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.16.1...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx` from 8.2.3 to 9.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx/releases\"\u003esphinx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSphinx 9.1.0\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14153\"\u003e#14153\u003c/a\u003e: Drop Python 3.11 support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/12555\"\u003e#12555\u003c/a\u003e: Drop Docutils 0.20 support.\nPatch by Adam Turner\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eadd_static_dir()\u003c/code\u003e for copying static\nassets from extensions to the build output.\nPatch by Jared Dillard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14189\"\u003e#14189\u003c/a\u003e: autodoc: Fix duplicate \u003ccode\u003e:no-index-entry:\u003c/code\u003e for modules.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13713\"\u003e#13713\u003c/a\u003e: Fix compatibility with MyST-Parser.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eFix tests for Python 3.15.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Fix default option parsing.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eRemove incorrect static typing assertions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14050\"\u003e#14050\u003c/a\u003e: LaTeXTranslator fails to build documents using the \u0026quot;acronym\u0026quot;\nstandard role.\nPatch by Günter Milde\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix rendering for grid filled merged vertical cell.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14228\"\u003e#14228\u003c/a\u003e: LaTeX: Fix overrun footer for cases of merged vertical table cells.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14207\"\u003e#14207\u003c/a\u003e: Fix creating \u003ccode\u003eHTMLThemeFactory\u003c/code\u003e objects in third-party extensions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/3099\"\u003e#3099\u003c/a\u003e: LaTeX: PDF build crashes if a code-block contains more than\ncirca 1350 codelines (about 27 a4-sized pages at default pointsize).\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14064\"\u003e#14064\u003c/a\u003e: LaTeX: TABs ending up in sphinxVerbatim fail to obey tab stops.\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Improve support for non-weakreferencable objects.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix accidental removal at \u003ccode\u003e3.5.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/8854\"\u003e#8854\u003c/a\u003e) of the documentation of\n\u003ccode\u003eliteralblockcappos\u003c/code\u003e key of  sphinxsetup.\nPatch by Jean-François B.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/sphinx-doc/sphinx/blob/master/CHANGES.rst\"\u003esphinx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 9.1.0 (released Dec 31, 2025)\u003c/h1\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14153\"\u003e#14153\u003c/a\u003e: Drop Python 3.11 support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/12555\"\u003e#12555\u003c/a\u003e: Drop Docutils 0.20 support.\nPatch by Adam Turner\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :meth:\u003ccode\u003e~sphinx.application.Sphinx.add_static_dir\u003c/code\u003e for copying static\nassets from extensions to the build output.\nPatch by Jared Dillard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14189\"\u003e#14189\u003c/a\u003e: autodoc: Fix duplicate \u003ccode\u003e:no-index-entry:\u003c/code\u003e for modules.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13713\"\u003e#13713\u003c/a\u003e: Fix compatibility with MyST-Parser.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eFix tests for Python 3.15.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Fix default option parsing.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eRemove incorrect static typing assertions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14050\"\u003e#14050\u003c/a\u003e: LaTeXTranslator fails to build documents using the \u0026quot;acronym\u0026quot;\nstandard role.\nPatch by Günter Milde\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix rendering for grid filled merged vertical cell.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14228\"\u003e#14228\u003c/a\u003e: LaTeX: Fix overrun footer for cases of merged vertical table cells.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14207\"\u003e#14207\u003c/a\u003e: Fix creating \u003ccode\u003eHTMLThemeFactory\u003c/code\u003e objects in third-party extensions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/3099\"\u003e#3099\u003c/a\u003e: LaTeX: PDF build crashes if a code-block contains more than\ncirca 1350 codelines (about 27 a4-sized pages at default pointsize).\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14064\"\u003e#14064\u003c/a\u003e: LaTeX: TABs ending up in sphinxVerbatim fail to obey tab stops.\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Improve support for non-weakreferencable objects.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix accidental removal at \u003ccode\u003e3.5.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/8854\"\u003e#8854\u003c/a\u003e) of the documentation of\n\u003ccode\u003eliteralblockcappos\u003c/code\u003e key of  :ref:\u003ccode\u003e'sphinxsetup' \u0026lt;latexsphinxsetup\u0026gt;\u003c/code\u003e.\nPatch by Jean-François B.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/cc7c6f435ad37bb12264f8118c8461b230e6830c\"\u003e\u003ccode\u003ecc7c6f4\u003c/code\u003e\u003c/a\u003e Bump to 9.1.0 final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/b127b9478aa4654a82eeadf1a1e89715d3927608\"\u003e\u003ccode\u003eb127b94\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eapp.add_static_dir()\u003c/code\u003e for copying extension static files (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14219\"\u003e#14219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/20f1c46790d370b50fa7396cca3e1cc658ce9f89\"\u003e\u003ccode\u003e20f1c46\u003c/code\u003e\u003c/a\u003e LaTeX: Inhibit breaks for rows with merged vertical cells (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14227\"\u003e#14227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/3c85411fd06a1c3026f7991818312e5358ef52e5\"\u003e\u003ccode\u003e3c85411\u003c/code\u003e\u003c/a\u003e Polish CHANGES.rst (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14225\"\u003e#14225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/9ee5446c6cfb997a6b92f5cfb84d045ec947417a\"\u003e\u003ccode\u003e9ee5446\u003c/code\u003e\u003c/a\u003e LaTeX: restore 1.7 documentation of literalblockcappos (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14224\"\u003e#14224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/d75d602005be7567abc7741ee777f6f8c302d827\"\u003e\u003ccode\u003ed75d602\u003c/code\u003e\u003c/a\u003e LaTeX: improve (again...) some code comments in time for 9.1.0 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14222\"\u003e#14222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/8dca61d69a4a05c56702980e4f6cbe6451dd9ebc\"\u003e\u003ccode\u003e8dca61d\u003c/code\u003e\u003c/a\u003e Improve some LaTeX code comments (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14220\"\u003e#14220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/8ab960098a8e12b8893bd3ceafc394759118346b\"\u003e\u003ccode\u003e8ab9600\u003c/code\u003e\u003c/a\u003e Bump to 9.1.0 candidate 2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/d59b2375945ed04414a11b0adb3e5655525f3e9e\"\u003e\u003ccode\u003ed59b237\u003c/code\u003e\u003c/a\u003e autodoc: Improve support for non-weakreferencable objects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/964424b3dbc92ed1718272fd45123878f3eec14d\"\u003e\u003ccode\u003e964424b\u003c/code\u003e\u003c/a\u003e Use the correct reference for using existing extensions (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14157\"\u003e#14157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx/compare/v8.2.3...v9.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autoapi` from 3.6.0 to 3.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/releases\"\u003esphinx-autoapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.6.1\u003c/h2\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate the supported versions of astroid. Fix the breaking change to Import and pass in the AstroidManager to the AstroidBuilder (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/536\"\u003e#536\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/readthedocs/sphinx-autoapi/blob/main/CHANGELOG.rst\"\u003esphinx-autoapi's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.6.1 (2025-10-06)\u003c/h2\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate the supported versions of astroid.\nFix the breaking change to Import and pass in the AstroidManager to the AstroidBuilder (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/536\"\u003e#536\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/readthedocs/sphinx-autoapi/commit/0b4509e2726352ed6eb34822e6429e7090139240\"\u003e\u003ccode\u003e0b4509e\u003c/code\u003e\u003c/a\u003e Version 3.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/21a53c742928fa89e63b39008585be4c66b3ee3d\"\u003e\u003ccode\u003e21a53c7\u003c/code\u003e\u003c/a\u003e Fix change in astroid api (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/4433b175acd31405ffd5ee0aa154171a0fbd9a3b\"\u003e\u003ccode\u003e4433b17\u003c/code\u003e\u003c/a\u003e Bump sigstore/gh-action-sigstore-python in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/ef3295f973f52491d2459ac54cd5a9fa8bae4cec\"\u003e\u003ccode\u003eef3295f\u003c/code\u003e\u003c/a\u003e fix: add a footer icon for github\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/compare/v3.6.0...v3.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-rtd-theme` from 3.0.2 to 3.1.0rc1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst\"\u003esphinx-rtd-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.0rc1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.0.2:\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/readthedocs/sphinx_rtd_theme/commit/20733c3bcc60df8eda23512a0f3ccb2861486110\"\u003e\u003ccode\u003e20733c3\u003c/code\u003e\u003c/a\u003e Add support for Sphinx 9.0.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1666\"\u003e#1666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/71aacd35048c8bc2ab646ed4e3e9af1075034387\"\u003e\u003ccode\u003e71aacd3\u003c/code\u003e\u003c/a\u003e Update Code of Conduct URL (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1664\"\u003e#1664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/5a263753d52c1628c88392fbf52c729f5a8e79b5\"\u003e\u003ccode\u003e5a26375\u003c/code\u003e\u003c/a\u003e Run tests and build docs with Sphinx 8.2 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1640\"\u003e#1640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/8d4d394dad2d55cf9a4db880effac6aa5c7b12e6\"\u003e\u003ccode\u003e8d4d394\u003c/code\u003e\u003c/a\u003e Sidebar should not be floating on mobile (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1622\"\u003e#1622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/compare/3.0.2...3.1.0rc1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autobuild` from 2024.10.3 to 2025.8.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\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/Jekwwer/python-workspace/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jekwwer%2Fpython-workspace/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"},{"uuid":"3755216092","node_id":"PR_kwDOH4hehs66N6fx","number":281,"state":"closed","title":"Bump the dependencies group across 1 directory with 14 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-13T02:02:04.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T21:07:37.000Z","updated_at":"2026-01-13T02:02:06.000Z","time_to_close":1832067,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":14,"packages":[{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"anyio","old_version":"4.9.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"roman-numerals-py","old_version":"3.1.0","new_version":"4.1.0","repository_url":"https://github.com/AA-Turner/roman-numerals"},{"name":"starlette","old_version":"0.49.1","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.6.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.34.3","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 14 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.12.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.11.12` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [roman-numerals-py](https://github.com/AA-Turner/roman-numerals) | `3.1.0` | `4.1.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.1` | `0.50.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.0` | `2.6.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.3` | `0.40.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n\n\nUpdates `sphinx-autobuild` from 2024.10.3 to 2025.8.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.9.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\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003eCancelScope.cancel()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by passing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to \u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e keyword argument (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically handle all async tests (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/857\"\u003e#857\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously raised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise \u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but \u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this scenario. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing users to inject data directly into the buffer\u003c/li\u003e\n\u003cli\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects\u003c/li\u003e\n\u003cli\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and \u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context managers, particularly cancel scopes or task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/905\"\u003e#905\u003c/a\u003e; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/818\"\u003e#818\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e and \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things, this prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/896\"\u003e#896\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIncorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)\u003c/li\u003e\n\u003cli\u003eAdded a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ccode\u003eto_interpreters\u003c/code\u003e module to use the public \u003ccode\u003econcurrent.interpreters\u003c/code\u003e API on Python 3.14 or later\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path.copy()\u003c/code\u003e and \u003ccode\u003eanyio.Path.copy_into()\u003c/code\u003e failing on Python 3.14.0a7\u003c/li\u003e\n\u003cli\u003eFixed return annotation of \u003ccode\u003e__aexit__\u003c/code\u003e on async context managers. CMs which can suppress exceptions should return \u003ccode\u003ebool\u003c/code\u003e, or \u003ccode\u003eNone\u003c/code\u003e otherwise. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/913\"\u003e#913\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Enegg\"\u003e\u003ccode\u003e@​Enegg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed rollover boundary check in \u003ccode\u003eSpooledTemporaryFile\u003c/code\u003e so that rollover only occurs when the buffer size exceeds \u003ccode\u003emax_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/915\"\u003e#915\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrated testing and documentation dependencies from extras to dependency groups\u003c/li\u003e\n\u003cli\u003eFixed compatibility of \u003ccode\u003eanyio.to_interpreter\u003c/code\u003e with Python 3.14.0b2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/926\"\u003e#926\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSyntaxWarning\u003c/code\u003e on Python 3.14 about \u003ccode\u003ereturn\u003c/code\u003e in \u003ccode\u003efinally\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/816\"\u003e#816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed RunVar name conflicts. RunVar instances with the same name should not share storage (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/880\"\u003e#880\u003c/a\u003e; PR by \u003ca href=\"https://github.com/vimfu\"\u003e\u003ccode\u003e@​vimfu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRenamed the \u003ccode\u003eBrokenWorkerIntepreter\u003c/code\u003e exception to \u003ccode\u003eBrokenWorkerInterpreter\u003c/code\u003e. The old name is available as a deprecated alias. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/938\"\u003e#938\u003c/a\u003e; PR by \u003ca href=\"https://github.com/ayussh-verma\"\u003e\u003ccode\u003e@​ayussh-verma\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/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.9.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 `certifi` from 2025.6.15 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"\u003e\u003ccode\u003e37ea150\u003c/code\u003e\u003c/a\u003e 2025.11.12 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"\u003e\u003ccode\u003e2fa50bb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.2 to 5.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"\u003e\u003ccode\u003e6cadb53\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fb14ac49a976b1695d84b1ac1307276a20b3aac9\"\u003e\u003ccode\u003efb14ac4\u003c/code\u003e\u003c/a\u003e 2025.10.05 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2c7c7ee6b76a118191b685a4cc028d4241f22eb7\"\u003e\u003ccode\u003e2c7c7ee\u003c/code\u003e\u003c/a\u003e Add Python 3.14 classifier in setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1a5cb7b3771bba256755f88b3dcf3ac13f064622\"\u003e\u003ccode\u003e1a5cb7b\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/dea59605ef2b266c2e0e67938e8c8535a04b1211\"\u003e\u003ccode\u003edea5960\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/83566b7c993eef772facdaff59c7bba105675329\"\u003e\u003ccode\u003e83566b7\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/certifi/python-certifi/commit/ca2e121bdb304fd01f802d3b1ee6a65684f569f2\"\u003e\u003ccode\u003eca2e121\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.3.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.2.1 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/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.10 to 3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\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.4 to 2.32.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `roman-numerals-py` from 3.1.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AA-Turner/roman-numerals/releases\"\u003eroman-numerals-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.1.0\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.0.0\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/AA-Turner/roman-numerals/blob/master/CHANGES.rst\"\u003eroman-numerals-py's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.1.0 (released 17 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003eAdd some debug assertions for unsafe blocks\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.0.0 (released 16 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRename Python package to \u003ccode\u003eroman-numerals\u003c/code\u003e on PyPI.\u003c/li\u003e\n\u003cli\u003ePublish \u003ccode\u003eroman-numerals-py\u003c/code\u003e as a meta-package that depends\non \u003ccode\u003eroman-numerals\u003c/code\u003e and installs no modules.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eIncrease the minimum supported Rust version (MSRV) to 1.81.0.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::error::Error\u003c/code\u003e trait for all error types.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::fmt\u003c/code\u003e traits in \u003ccode\u003eno-std\u003c/code\u003e mode.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eFrom\u0026lt;RomanNumeral\u0026gt;\u003c/code\u003e for most integer types.\u003c/li\u003e\n\u003cli\u003ePublish the \u003ccode\u003eroman-numerals-rs\u003c/code\u003e crate using \u003ccode\u003eTrusted Publishing \u0026lt;https://crates.io/docs/trusted-publishing\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/AA-Turner/roman-numerals/commit/53c9c4eac63b91728fba3c26329163ee57654d21\"\u003e\u003ccode\u003e53c9c4e\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a3793b83fab7064107ac56a482a6fa93bc9c5048\"\u003e\u003ccode\u003ea3793b8\u003c/code\u003e\u003c/a\u003e Add more SAFETY notes and debug assertions to unsafe blocks (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/106\"\u003e#106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/46d346e2d08b634856c79783e404616b65626ba7\"\u003e\u003ccode\u003e46d346e\u003c/code\u003e\u003c/a\u003e Adjust annotations in light of PEP 649\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/b8fae405d948415f7397ae4f64569c53cb623105\"\u003e\u003ccode\u003eb8fae40\u003c/code\u003e\u003c/a\u003e Adjust an example in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a88464130711ad5e8d56e6ff747d17068ae17534\"\u003e\u003ccode\u003ea884641\u003c/code\u003e\u003c/a\u003e Restore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c3e1b6b4e6e02e5e19c26dc6f72bbb7b1060cca5\"\u003e\u003ccode\u003ec3e1b6b\u003c/code\u003e\u003c/a\u003e Release v4.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c335cb63ed97e684a4e9453639bfc7e9f487bb41\"\u003e\u003ccode\u003ec335cb6\u003c/code\u003e\u003c/a\u003e Add publishing step for the \u003ccode\u003eroman-numerals-py\u003c/code\u003e meta-package (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/105\"\u003e#105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/649f6e62e7bd24123d7dd489609ae47168aaeb1b\"\u003e\u003ccode\u003e649f6e6\u003c/code\u003e\u003c/a\u003e Add Trusted Publishing workflow for crates.io (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/104\"\u003e#104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/ffa4dd1b33eae62f1bd1d44549e10a528b8f1f58\"\u003e\u003ccode\u003effa4dd1\u003c/code\u003e\u003c/a\u003e rust: Refactor tests (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/26b41561c1d9813104548777b5ed9622d7125b38\"\u003e\u003ccode\u003e26b4156\u003c/code\u003e\u003c/a\u003e Simplify ASCII detection closures (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AA-Turner/roman-numerals/compare/v3.1.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.49.1 to 0.50.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.50.0\u003c/h2\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.3...0.50.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.3...0.50.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.3\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3059\"\u003e#3059\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.2...0.49.3\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.2...0.49.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.2\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore \u003ccode\u003eif-modified-since\u003c/code\u003e header if \u003ccode\u003eif-none-match\u003c/code\u003e is present in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3044\"\u003e#3044\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.49.2\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.1...0.49.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.50.0 (November 1, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.3 (November 1, 2025)\u003c/h2\u003e\n\u003cp\u003eThis is the last release that supports Python 3.9, which will be dropped in the next minor release.\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRelax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3059\"\u003e#3059\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.2 (November 1, 2025)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore \u003ccode\u003eif-modified-since\u003c/code\u003e header if \u003ccode\u003eif-none-match\u003c/code\u003e is present in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3044\"\u003e#3044\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4941b4a04993d087dea66e9287fe9472babee879\"\u003e\u003ccode\u003e4941b4a\u003c/code\u003e\u003c/a\u003e Version 0.50.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a0499f60a6f13b8b42381d70bafc076b6ece4eee\"\u003e\u003ccode\u003ea0499f6\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3061\"\u003e#3061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/de3ffecaeadd34612f71495374f5853edbda1bf2\"\u003e\u003ccode\u003ede3ffec\u003c/code\u003e\u003c/a\u003e Version 0.49.3 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3062\"\u003e#3062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/c4433960ccc07289e0963df94dc5c2746f07ca1a\"\u003e\u003ccode\u003ec443396\u003c/code\u003e\u003c/a\u003e Relax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3059\"\u003e#3059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/85bf0275fbf26f5a7fef539a03bebfeb125b9ea3\"\u003e\u003ccode\u003e85bf027\u003c/code\u003e\u003c/a\u003e Version 0.49.2 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3d480dd7d5adf474d0736c67a2a3064e88226837\"\u003e\u003ccode\u003e3d480dd\u003c/code\u003e\u003c/a\u003e Ignore \u003ccode\u003eif-modified-since\u003c/code\u003e if \u003ccode\u003eif-none-match\u003c/code\u003e is present (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/da0605243010715356be69693a524f2300011948\"\u003e\u003ccode\u003eda06052\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3056\"\u003e#3056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/34caa9900f47b9ab5afffa5f4ee148a00940f622\"\u003e\u003ccode\u003e34caa99\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3055\"\u003e#3055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.50.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typing-extensions` from 4.14.0 to 4.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/releases\"\u003etyping-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003cp\u003eNew features since 4.14.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.15.0rc1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.14.1\u003c/h2\u003e\n\u003ch1\u003eRelease 4.14.1 (July 4, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix usage of \u003ccode\u003etyping_extensions.TypedDict\u003c/code\u003e nested inside other types\n(e.g., \u003ccode\u003etyping.Type[typing_extensions.TypedDict]\u003c/code\u003e). This is not allowed by the\ntype system but worked on older versions, so we maintain support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/blob/main/CHANGELOG.md\"\u003etyping-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.15.0 (August 25, 2025)\u003c/h1\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003ch1\u003eRelease 4.15.0rc1 (August 18, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.14.1 (July 4, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix usage of \u003ccode\u003etyping_extensions.TypedDict\u003c/code\u003e nested inside other types\n(e.g., \u003ccode\u003etyping.Type[typing_extensions.TypedDict]\u003c/code\u003e). This is not allowed by the\ntype system but worked on older versions, so we maintain support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/9d1637e264b5c1a6b7acee3e907015f89b20c2c9\"\u003e\u003ccode\u003e9d1637e\u003c/code\u003e\u003c/a\u003e Prepare release 4.15.0 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/4bd67c5be5d9443c7d33c314d02a56ee125eb88d\"\u003e\u003ccode\u003e4bd67c5\u003c/code\u003e\u003c/a\u003e Coverage: exclude some noise (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/656\"\u003e#656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e589a26da73b075c5276bae40b86db1af0144f84\"\u003e\u003ccode\u003ee589a26\u003c/code\u003e\u003c/a\u003e Coverage: add detailed report to job summary (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/67d37fed1298e050f74d5acc95b2621bd37837ad\"\u003e\u003ccode\u003e67d37fe\u003c/code\u003e\u003c/a\u003e Coverage: Implement fail_under (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/654\"\u003e#654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e9ae26f5286edee9262727755ecb9ad16e999192\"\u003e\u003ccode\u003ee9ae26f\u003c/code\u003e\u003c/a\u003e Don't delete previous coverage comment (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/653\"\u003e#653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/ac80bb728a3006fc88ef7373b92f0c25cfcc7895\"\u003e\u003ccode\u003eac80bb7\u003c/code\u003e\u003c/a\u003e Add Coverage workflow (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/623\"\u003e#623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/abaaafd98c1cc7e5baf098ec287a3d22cb339670\"\u003e\u003ccode\u003eabaaafd\u003c/code\u003e\u003c/a\u003e Prepare release 4.15.0rc1 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/650\"\u003e#650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/98104053ea8d49bcdd247804e5fa9f73136acbd4\"\u003e\u003ccode\u003e9810405\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e@disjoint_base\u003c/code\u003e (PEP 800) (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/634\"\u003e#634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/7ee9e05fd484d06899ce56e80f5e1aa4c760fc03\"\u003e\u003ccode\u003e7ee9e05\u003c/code\u003e\u003c/a\u003e Backport type_params fix from CPython (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/646\"\u003e#646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/1e8eb9c06ef51b3a1e1f05303a16feca13f5ed98\"\u003e\u003ccode\u003e1e8eb9c\u003c/code\u003e\u003c/a\u003e Do not refer to PEP 705 as being experimental (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/typing_extensions/compare/4.14.0...4.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.6.0 to 2.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud ...\n\n_Description has been truncated_","html_url":"https://github.com/freedomofpress/securedrop-dev-docs/pull/281","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/freedomofpress%2Fsecuredrop-dev-docs/issues/281","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/281/packages"}],"issue_packages":[{"old_version":"~=2025.8","new_version":"\u003e=2025.8,\u003c2022.0","update_type":null,"path":null,"pr_created_at":"2026-06-24T21:05:37.000Z","version_change":"~=2025.8 → \u003e=2025.8,\u003c2022.0","issue":{"uuid":"4738463910","node_id":"PR_kwDONjSF6M7qSrP8","number":9,"state":"closed","title":"Update sphinx-autobuild requirement from ~=2025.8 to \u003e=2025.8,\u003c2022.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":19,"pull_request":true,"closed_at":"2026-06-25T04:11:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-24T21:05:37.000Z","updated_at":"2026-06-25T04:22:47.000Z","time_to_close":25582,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"sphinx-autobuild","old_version":"~=2025.8","new_version":"\u003e=2025.8,\u003c2022.0","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/1eb7d7746b773f515de64f1bd83c14bccca8a1ef\"\u003e\u003ccode\u003e1eb7d77\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/b54fb08afc5112bfcda1d844a700c5a20cd6ba5e\"\u003e\u003ccode\u003eb54fb08\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/106\"\u003e#106\u003c/a\u003e from pradyunsg/change-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/624d251da41db5c95b12f34d50b712f918784036\"\u003e\u003ccode\u003e624d251\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/105\"\u003e#105\u003c/a\u003e from pradyunsg/rework-how-it-looks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6c8cf8e41457e7ddf1cf332625e572305a7e6ac1\"\u003e\u003ccode\u003e6c8cf8e\u003c/code\u003e\u003c/a\u003e Add GitHub Actions based CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/52ad7d24b28bfe4c93b33c53f1c2aeb8da639cfa\"\u003e\u003ccode\u003e52ad7d2\u003c/code\u003e\u003c/a\u003e Drop Travis CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/675d5b60269d2d033b69b51bee7f9500d34460b5\"\u003e\u003ccode\u003e675d5b6\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/7208ba91afe0c5e99cac4065a6e6f888a1863172\"\u003e\u003ccode\u003e7208ba9\u003c/code\u003e\u003c/a\u003e Rework build output handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c185af8f14dcd90791d1d4480097a06de487f857\"\u003e\u003ccode\u003ec185af8\u003c/code\u003e\u003c/a\u003e Reuse nox environments, where sensible\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0796314bd4daa8c1cfb72ccfa4382cc1f255c649\"\u003e\u003ccode\u003e0796314\u003c/code\u003e\u003c/a\u003e Bump for development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/274445aba3c4bc75458f1a4c6b83f1e501fc71d4\"\u003e\u003ccode\u003e274445a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/98\"\u003e#98\u003c/a\u003e from hwine/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2025.08.25...2021.03.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull Request\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| sphinx-autobuild | [\u003e= 2024.10.3.dev0, \u003c 2024.10.4] |\n| sphinx-autobuild | [\u003e= 2024.10.2.dev0, \u003c 2024.10.3] |\n| sphinx-autobuild | [\u003e= 2024.10.dev0, \u003c 2024.11] |\n| sphinx-autobuild | [\u003e= 2024.dev0, \u003c 2025] |\n\u003c/details\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/zedzhen/pydantic-extra/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/zedzhen%2Fpydantic-extra/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"}},{"old_version":"\u003e=2021.3.14","new_version":"\u003e=2024.10.3","update_type":"minor","path":null,"pr_created_at":"2026-06-04T03:17:24.000Z","version_change":"\u003e=2021.3.14 → \u003e=2024.10.3","issue":{"uuid":"4585464347","node_id":"PR_kwDONM4U-s7iglzL","number":66,"state":"open","title":"chore(deps-dev): update sphinx-autobuild requirement from \u003e=2021.3.14 to \u003e=2024.10.3","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-04T03:17:24.000Z","updated_at":"2026-06-04T03:17:45.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): update","packages":[{"name":"sphinx-autobuild","old_version":"\u003e=2021.3.14","new_version":"\u003e=2024.10.3","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/86e2f373802417c944fda6c2930c8c3c98c20218\"\u003e\u003ccode\u003e86e2f37\u003c/code\u003e\u003c/a\u003e Release 2024.10.03\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/1771311d92e0dd1f338d91508b9a670c536dfff3\"\u003e\u003ccode\u003e1771311\u003c/code\u003e\u003c/a\u003e Improve handling for errors in pre-build commands (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/181\"\u003e#181\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/5eedf7220d71c4279094270e4b633d2b0ce5ebfc\"\u003e\u003ccode\u003e5eedf72\u003c/code\u003e\u003c/a\u003e Release 2024.10.02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/1743a4370869e3338c84ddb8778b3fa0b811b23d\"\u003e\u003ccode\u003e1743a43\u003c/code\u003e\u003c/a\u003e Show which paths changed when rebuilding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/028cf60ce16ebd6d5502eb33913577f719d5d574\"\u003e\u003ccode\u003e028cf60\u003c/code\u003e\u003c/a\u003e Add missing \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e imports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f3146c1f2d25ba525a47633badf3839a74765449\"\u003e\u003ccode\u003ef3146c1\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003e-m sphinx build\u003c/code\u003e if supported\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/49457de98ec91593f03770aefc7a8d2cbf4a1a12\"\u003e\u003ccode\u003e49457de\u003c/code\u003e\u003c/a\u003e fixup! Fix path filtering on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/2e4e6f7ca44201fca7dfa8ebe69a8488b70a6323\"\u003e\u003ccode\u003e2e4e6f7\u003c/code\u003e\u003c/a\u003e Split \u003ccode\u003eshow()\u003c/code\u003e into \u003ccode\u003eshow_message()\u003c/code\u003e and \u003ccode\u003eshow_command()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/829ec7125a8585af8ec98188ae61f1da1c379cb1\"\u003e\u003ccode\u003e829ec71\u003c/code\u003e\u003c/a\u003e Restrict the release workflow to the \u003ca href=\"https://github.com/sphinx-doc\"\u003e\u003ccode\u003e@​sphinx-doc\u003c/code\u003e\u003c/a\u003e organisation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/4552a5ffc48c1183064102068ec531e3f350fbd2\"\u003e\u003ccode\u003e4552a5f\u003c/code\u003e\u003c/a\u003e Release 2024.09.19\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2021.03.14...2024.10.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/dr-gareth-roberts/insideLLMs/pull/66","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dr-gareth-roberts%2FinsideLLMs/issues/66","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/66/packages"}},{"old_version":"^2021.3.14","new_version":"^2024.10.3","update_type":"minor","path":null,"pr_created_at":"2026-05-11T07:30:06.000Z","version_change":"^2021.3.14 → ^2024.10.3","issue":{"uuid":"4418904238","node_id":"PR_kwDOSPl5987aJhs9","number":71,"state":"open","title":"chore(deps-dev)(deps-dev): Update sphinx-autobuild requirement from ^2021.3.14 to ^2024.10.3","user":"dependabot[bot]","labels":[],"assignees":["Zyrtnin"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-11T07:30:06.000Z","updated_at":"2026-05-11T07:30:08.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)(deps-dev): Update","packages":[{"name":"sphinx-autobuild","old_version":"^2021.3.14","new_version":"^2024.10.3","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/86e2f373802417c944fda6c2930c8c3c98c20218\"\u003e\u003ccode\u003e86e2f37\u003c/code\u003e\u003c/a\u003e Release 2024.10.03\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/1771311d92e0dd1f338d91508b9a670c536dfff3\"\u003e\u003ccode\u003e1771311\u003c/code\u003e\u003c/a\u003e Improve handling for errors in pre-build commands (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/181\"\u003e#181\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/5eedf7220d71c4279094270e4b633d2b0ce5ebfc\"\u003e\u003ccode\u003e5eedf72\u003c/code\u003e\u003c/a\u003e Release 2024.10.02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/1743a4370869e3338c84ddb8778b3fa0b811b23d\"\u003e\u003ccode\u003e1743a43\u003c/code\u003e\u003c/a\u003e Show which paths changed when rebuilding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/028cf60ce16ebd6d5502eb33913577f719d5d574\"\u003e\u003ccode\u003e028cf60\u003c/code\u003e\u003c/a\u003e Add missing \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e imports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f3146c1f2d25ba525a47633badf3839a74765449\"\u003e\u003ccode\u003ef3146c1\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003e-m sphinx build\u003c/code\u003e if supported\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/49457de98ec91593f03770aefc7a8d2cbf4a1a12\"\u003e\u003ccode\u003e49457de\u003c/code\u003e\u003c/a\u003e fixup! Fix path filtering on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/2e4e6f7ca44201fca7dfa8ebe69a8488b70a6323\"\u003e\u003ccode\u003e2e4e6f7\u003c/code\u003e\u003c/a\u003e Split \u003ccode\u003eshow()\u003c/code\u003e into \u003ccode\u003eshow_message()\u003c/code\u003e and \u003ccode\u003eshow_command()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/829ec7125a8585af8ec98188ae61f1da1c379cb1\"\u003e\u003ccode\u003e829ec71\u003c/code\u003e\u003c/a\u003e Restrict the release workflow to the \u003ca href=\"https://github.com/sphinx-doc\"\u003e\u003ccode\u003e@​sphinx-doc\u003c/code\u003e\u003c/a\u003e organisation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/4552a5ffc48c1183064102068ec531e3f350fbd2\"\u003e\u003ccode\u003e4552a5f\u003c/code\u003e\u003c/a\u003e Release 2024.09.19\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2021.03.14...2024.10.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/MudwoodLabs/pyrxd/pull/71","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MudwoodLabs%2Fpyrxd/issues/71","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/71/packages"}},{"old_version":"\u003e=2021.3.14","new_version":"\u003e=2025.8.25","update_type":"minor","path":"/doc","pr_created_at":"2026-04-22T11:23:38.000Z","version_change":"\u003e=2021.3.14 → \u003e=2025.8.25","issue":{"uuid":"4308623324","node_id":"PR_kwDOAgXKRM7Umfn1","number":3810,"state":"closed","title":"Update sphinx-autobuild requirement from \u003e=2021.3.14 to \u003e=2025.8.25 in /doc","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-04T11:28:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-22T11:23:38.000Z","updated_at":"2026-05-04T11:28:52.000Z","time_to_close":1037104,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"sphinx-autobuild","old_version":"\u003e=2021.3.14","new_version":"\u003e=2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":"/doc","ecosystem":"pip"},"body":"Updates the requirements on [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/86e2f373802417c944fda6c2930c8c3c98c20218\"\u003e\u003ccode\u003e86e2f37\u003c/code\u003e\u003c/a\u003e Release 2024.10.03\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2021.03.14...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/nest/nest-simulator/pull/3810","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nest%2Fnest-simulator/issues/3810","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3810/packages"}},{"old_version":"2024.10.3","new_version":"2025.8.25","update_type":"major","path":null,"pr_created_at":"2026-02-02T08:23:07.000Z","version_change":"2024.10.3 → 2025.8.25","issue":{"uuid":"3884627354","node_id":"PR_kwDOKe6bh87A2J84","number":195,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 39 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-02-02T10:48:58.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-02T08:23:07.000Z","updated_at":"2026-02-02T10:49:00.000Z","time_to_close":8751,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":39,"packages":[{"name":"coverage","old_version":"7.13.1","new_version":"7.13.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"ruff","old_version":"0.14.10","new_version":"0.14.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"sphinx","old_version":"8.2.3","new_version":"9.0.4","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-autodoc-typehints","old_version":"3.2.0","new_version":"3.6.1","repository_url":"https://github.com/tox-dev/sphinx-autodoc-typehints"},{"name":"sphinx-togglebutton","old_version":"0.3.2","new_version":"0.4.4","repository_url":"https://github.com/executablebooks/sphinx-togglebutton"},{"name":"pandas-stubs","old_version":"2.3.3.251219","new_version":"2.3.3.260113","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"types-python-dateutil","old_version":"2.9.0.20251115","new_version":"2.9.0.20260124","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"tomli","old_version":"2.3.0","new_version":"2.4.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"narwhals","old_version":"2.14.0","new_version":"2.15.0","repository_url":"https://github.com/narwhals-dev/narwhals"},{"name":"numpy","old_version":"2.3.2","new_version":"2.4.2","repository_url":"https://github.com/numpy/numpy"},{"name":"pandas","old_version":"2.3.3","new_version":"3.0.0","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"polars","old_version":"1.36.1","new_version":"1.37.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pyarrow","old_version":"22.0.0","new_version":"23.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"duckdb","old_version":"1.4.3","new_version":"1.4.4","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"bigtree","old_version":"1.1.0","new_version":"1.3.0","repository_url":"https://github.com/kayjan/bigtree"},{"name":"anyio","old_version":"4.12.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"babel","old_version":"2.17.0","new_version":"2.18.0","repository_url":"https://github.com/python-babel/babel"},{"name":"cachetools","old_version":"6.2.4","new_version":"6.2.6","repository_url":"https://github.com/tkem/cachetools"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"google-api-core","old_version":"2.28.1","new_version":"2.29.0","repository_url":"https://github.com/googleapis/python-api-core"},{"name":"google-auth","old_version":"2.45.0","new_version":"2.48.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-auth-oauthlib","old_version":"1.2.2","new_version":"1.2.4","repository_url":"https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib"},{"name":"google-cloud-storage","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-cloud-storage-control","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"identify","old_version":"2.6.15","new_version":"2.6.16","repository_url":"https://github.com/pre-commit/identify"},{"name":"ipython","old_version":"8.37.0","new_version":"8.38.0","repository_url":"https://github.com/ipython/ipython"},{"name":"multidict","old_version":"6.7.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"protobuf","old_version":"6.33.2","new_version":"6.33.5","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pyparsing","old_version":"3.3.1","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"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.1","new_version":"2.8.3","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.50.0","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"wcwidth","old_version":"0.2.14","new_version":"0.5.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 36 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.1` | `7.13.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.10` | `0.14.14` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `8.2.3` | `9.0.4` |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-autodoc-typehints](https://github.com/tox-dev/sphinx-autodoc-typehints) | `3.2.0` | `3.6.1` |\n| [sphinx-togglebutton](https://github.com/executablebooks/sphinx-togglebutton) | `0.3.2` | `0.4.4` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.3.251219` | `2.3.3.260113` |\n| [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader) | `2.9.0.20251115` | `2.9.0.20260124` |\n| [tomli](https://github.com/hukkin/tomli) | `2.3.0` | `2.4.0` |\n| [narwhals](https://github.com/narwhals-dev/narwhals) | `2.14.0` | `2.15.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.2` | `2.4.2` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.3` | `3.0.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.36.1` | `1.37.1` |\n| [pyarrow](https://github.com/apache/arrow) | `22.0.0` | `23.0.0` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.4.3` | `1.4.4` |\n| [bigtree](https://github.com/kayjan/bigtree) | `1.1.0` | `1.3.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.0` | `4.12.1` |\n| [babel](https://github.com/python-babel/babel) | `2.17.0` | `2.18.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.4` | `6.2.6` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [google-api-core](https://github.com/googleapis/python-api-core) | `2.28.1` | `2.29.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.45.0` | `2.48.0` |\n| [google-auth-oauthlib](https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib) | `1.2.2` | `1.2.4` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.7.0` | `3.8.0` |\n| [google-cloud-storage-control](https://github.com/googleapis/google-cloud-python) | `1.8.0` | `1.9.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.15` | `2.6.16` |\n| [ipython](https://github.com/ipython/ipython) | `8.37.0` | `8.38.0` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.7.0` | `6.7.1` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.2` | `6.33.5` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.3.1` | `3.3.2` |\n| [setuptools](https://github.com/pypa/setuptools) | `80.9.0` | `80.10.2` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8.1` | `2.8.3` |\n| [starlette](https://github.com/Kludex/starlette) | `0.50.0` | `0.52.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.14` | `0.5.3` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n\n\nUpdates `coverage` from 7.13.1 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\u003c/blockquote\u003e\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.13.1...7.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.10 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.14.10...0.14.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx` from 8.2.3 to 9.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx/releases\"\u003esphinx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSphinx 9.0.4\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes/9.0.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes/9.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14143\"\u003e#14143\u003c/a\u003e: Fix spurious build warnings when translators reorder references\nin strings, or use translated display text in references.\nPatch by Matt Wang.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSphinx 9.0.3\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes/9.0.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes/9.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14142\"\u003e#14142\u003c/a\u003e: autodoc: Restore some missing exports in \u003ccode\u003esphinx.ext.autodoc\u003c/code\u003e.\nPatch by Adam Turner.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSphinx 9.0.2\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes/9.0.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes/9.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14142\"\u003e#14142\u003c/a\u003e: autodoc: Restore \u003ccode\u003esphinx.ext.autodoc.mock\u003c/code\u003e.\nPatch by Adam Turner.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSphinx 9.0.1\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes/9.0.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes/9.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13942\"\u003e#13942\u003c/a\u003e: autodoc: Restore the mapping interface for options objects.\nPatch by Adam Turner.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13942\"\u003e#13942\u003c/a\u003e: autodoc: Deprecate the mapping interface for options objects.\nPatch by Adam Turner.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13387\"\u003e#13387\u003c/a\u003e: Update translations.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSphinx 9.0.0\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes/9.0.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes/9.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13786\"\u003e#13786\u003c/a\u003e: Support \u003ca href=\"https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-22-2026-07-29\"\u003eDocutils 0.22\u003c/a\u003e. Patch by Adam Turner.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIncompatible changes\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/sphinx-doc/sphinx/blob/v9.0.4/CHANGES.rst\"\u003esphinx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 9.0.4 (released Dec 04, 2025)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14143\"\u003e#14143\u003c/a\u003e: Fix spurious build warnings when translators reorder references\nin strings, or use translated display text in references.\nPatch by Matt Wang.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 9.0.3 (released Dec 04, 2025)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14142\"\u003e#14142\u003c/a\u003e: autodoc: Restore some missing exports in :mod:\u003ccode\u003e!sphinx.ext.autodoc\u003c/code\u003e.\nPatch by Adam Turner.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 9.0.2 (released Dec 03, 2025)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14142\"\u003e#14142\u003c/a\u003e: autodoc: Restore :mod:\u003ccode\u003e!sphinx.ext.autodoc.mock\u003c/code\u003e.\nPatch by Adam Turner.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 9.0.1 (released Dec 01, 2025)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13942\"\u003e#13942\u003c/a\u003e: autodoc: Restore the mapping interface for options objects.\nPatch by Adam Turner.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13942\"\u003e#13942\u003c/a\u003e: autodoc: Deprecate the mapping interface for options objects.\nPatch by Adam Turner.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13387\"\u003e#13387\u003c/a\u003e: Update translations.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 9.0.0 (released Nov 30, 2025)\u003c/h1\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13786\"\u003e#13786\u003c/a\u003e: Support \u003ccode\u003eDocutils 0.22\u003c/code\u003e_. Patch by Adam Turner.\u003c/p\u003e\n\u003cp\u003e.. _Docutils 0.22: \u003ca href=\"https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-22-2026-07-29\"\u003ehttps://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-22-2026-07-29\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/8ddba7e4cb5fdc035b9b18b2a8594724a3a33b86\"\u003e\u003ccode\u003e8ddba7e\u003c/code\u003e\u003c/a\u003e Bump to 9.0.4 final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/69596331b3680ebfc3b6dfbc60ce86c885423316\"\u003e\u003ccode\u003e6959633\u003c/code\u003e\u003c/a\u003e [bot]: Update message catalogues (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14155\"\u003e#14155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/88a4a97873c9300b9de8d67ac7a4b98a0b26c03f\"\u003e\u003ccode\u003e88a4a97\u003c/code\u003e\u003c/a\u003e Allow reordered refs and translated display text in pending_xref (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14144\"\u003e#14144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/f666208d78296b93781227744b6608df82a63b51\"\u003e\u003ccode\u003ef666208\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/df8a9e7e9ecb3e1bedb669e0d5ae3850b78e5114\"\u003e\u003ccode\u003edf8a9e7\u003c/code\u003e\u003c/a\u003e Bump to 9.0.3 final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/bd89f96c64a1d0a33270b6ceccef90a73b11a3bf\"\u003e\u003ccode\u003ebd89f96\u003c/code\u003e\u003c/a\u003e Import names from defining module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/7d05936ae19273c28f79ecb94137ba2c01413ba8\"\u003e\u003ccode\u003e7d05936\u003c/code\u003e\u003c/a\u003e autodoc: Restore some missing exports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/b745a1153047c399fdf2e242bd964d07cab220a0\"\u003e\u003ccode\u003eb745a11\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/1ac581c7334583710a0c9651f02d0debf7e306cf\"\u003e\u003ccode\u003e1ac581c\u003c/code\u003e\u003c/a\u003e Bump to 9.0.2 final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/1281a832a884625e54f3585fe9fc8a0c5179ed2b\"\u003e\u003ccode\u003e1281a83\u003c/code\u003e\u003c/a\u003e autodoc: Restore \u003ccode\u003emock\u003c/code\u003e module for compatibility (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14152\"\u003e#14152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx/compare/v8.2.3...v9.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autobuild` from 2024.10.3 to 2025.8.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autodoc-typehints` from 3.2.0 to 3.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/releases\"\u003esphinx-autodoc-typehints's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.6.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude metadata in type hints by \u003ca href=\"https://github.com/AllanChain\"\u003e\u003ccode\u003e@​AllanChain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/594\"\u003etox-dev/sphinx-autodoc-typehints#594\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/AllanChain\"\u003e\u003ccode\u003e@​AllanChain\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/594\"\u003etox-dev/sphinx-autodoc-typehints#594\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/sphinx-autodoc-typehints/compare/3.6.0...3.6.1\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.6.0...3.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse Sphinx 9 class interface by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/589\"\u003etox-dev/sphinx-autodoc-typehints#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/tox-dev/sphinx-autodoc-typehints/compare/3.5.2...3.6.0\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.5.2...3.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.5.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve type information from docstrings if no type annotation is present and parameter has default value. by \u003ca href=\"https://github.com/christianaguilera-foundry\"\u003e\u003ccode\u003e@​christianaguilera-foundry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/576\"\u003etox-dev/sphinx-autodoc-typehints#576\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/christianaguilera-foundry\"\u003e\u003ccode\u003e@​christianaguilera-foundry\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/576\"\u003etox-dev/sphinx-autodoc-typehints#576\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/sphinx-autodoc-typehints/compare/3.5.1...3.5.2\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.5.1...3.5.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.5.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeclare 3.14 support by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/571\"\u003etox-dev/sphinx-autodoc-typehints#571\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/sphinx-autodoc-typehints/compare/3.5.0...3.5.1\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.5.0...3.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Union type on its own by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/570\"\u003etox-dev/sphinx-autodoc-typehints#570\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/sphinx-autodoc-typehints/compare/3.4.0...3.5.0\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.4.0...3.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.4.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/65ad3c43111a5eea6bbaec6803c9a1bcf78cdb6c\"\u003e\u003ccode\u003e65ad3c4\u003c/code\u003e\u003c/a\u003e Include metadata in type hints (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/594\"\u003e#594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/3501b47ca738726f704f41e795caeaa5ff8123a9\"\u003e\u003ccode\u003e3501b47\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/593\"\u003e#593\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/136044f097480713d11083ad0a09d0c3f59b42aa\"\u003e\u003ccode\u003e136044f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/9e7037ff0c9b26215bccd5434c46e42e7b56ed94\"\u003e\u003ccode\u003e9e7037f\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/1289a796eae8e0fcf572071444f06841db352653\"\u003e\u003ccode\u003e1289a79\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/590\"\u003e#590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/7abd95a25ac65bfabab68e1fcb71beb7b5d9f832\"\u003e\u003ccode\u003e7abd95a\u003c/code\u003e\u003c/a\u003e Use Sphinx 9 class interface (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/52114b2408a605fa53877a926b471cf317954c65\"\u003e\u003ccode\u003e52114b2\u003c/code\u003e\u003c/a\u003e Support Sphinx 9+ (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/78f49cd27cfb0954f20f275b90ade63e495bc370\"\u003e\u003ccode\u003e78f49cd\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/585\"\u003e#585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/00a035bdab3395becf1c6faf13c7a55a83243b81\"\u003e\u003ccode\u003e00a035b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/70d43cf1e60fe41588be00b40b4e5545c53dd2ab\"\u003e\u003ccode\u003e70d43cf\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.2.0...3.6.1\"\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\nUpdates `myst-parser` from 4.0.1 to 5.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/MyST-Parser/releases\"\u003emyst-parser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch1\u003eMyST-Parser 5.0.0\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eRelease Date\u003c/strong\u003e: 2026-01-15\u003c/p\u003e\n\u003cp\u003eThis release significantly bumps the supported versions of core dependencies:\u003c/p\u003e\n\u003ch2\u003e‼️ Breaking Changes\u003c/h2\u003e\n\u003cp\u003eThis release updates the minimum supported versions:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePython\u003c/strong\u003e: \u003ccode\u003e\u0026gt;=3.11\u003c/code\u003e (dropped Python 3.10, tests up to 3.14)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSphinx\u003c/strong\u003e: \u003ccode\u003e\u0026gt;=8,\u0026lt;10\u003c/code\u003e (dropped Sphinx 7, added Sphinx 9)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDocutils\u003c/strong\u003e: \u003ccode\u003e\u0026gt;=0.20,\u0026lt;0.23\u003c/code\u003e (dropped docutils 0.19, added docutils 0.22)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emarkdown-it-py\u003c/strong\u003e: \u003ccode\u003e~=4.0\u003c/code\u003e (upgraded from v3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⬆️ Dependency Upgrades\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade to markdown-it-py v4 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1060\"\u003e#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Drop Python 3.10 and Sphinx 7 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1059\"\u003e#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Drop docutils 0.19 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1061\"\u003e#1061\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Add support for Python 3.14 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1075\"\u003e#1075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Support Sphinx v9 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1076\"\u003e#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Allow docutils 0.22 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1084\"\u003e#1084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e👌 Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e👌 Improve generation of meta nodes by \u003ca href=\"https://github.com/AA-Turner\"\u003e\u003ccode\u003e@​AA-Turner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1080\"\u003e#1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📚 Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e📚 Fix typo in tables.md by \u003ca href=\"https://github.com/electricalgorithm\"\u003e\u003ccode\u003e@​electricalgorithm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1034\"\u003e#1034\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Fix minor typo in \u003ccode\u003ecross-referencing.md\u003c/code\u003e by \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1036\"\u003e#1036\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔧 Internal / Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Update pre-commit by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1058\"\u003e#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Add \u003ccode\u003eAGENTS.md\u003c/code\u003e by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/pull/1083\"\u003e#1083\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/MyST-Parser/compare/v4.0.1...v5.0.0\"\u003ev4.0.1...v5.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/executablebooks/MyST-Parser/blob/master/CHANGELOG.md\"\u003emyst-parser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.0 - 2026-01-15\u003c/h2\u003e\n\u003cp\u003eThis release significantly bumps the supported versions of core dependencies:\u003c/p\u003e\n\u003ch3\u003e‼️ Breaking Changes\u003c/h3\u003e\n\u003cp\u003eThis release updates the minimum supported versions:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePython\u003c/strong\u003e: \u003ccode\u003e\u0026gt;=3.11\u003c/code\u003e (dropped Python 3.10, tests up to 3.14)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSphinx\u003c/strong\u003e: \u003ccode\u003e\u0026gt;=8,\u0026lt;10\u003c/code\u003e (dropped Sphinx 7, added Sphinx 9)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDocutils\u003c/strong\u003e: \u003ccode\u003e\u0026gt;=0.20,\u0026lt;0.23\u003c/code\u003e (dropped docutils 0.19, added docutils 0.22)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emarkdown-it-py\u003c/strong\u003e: \u003ccode\u003e~=4.0\u003c/code\u003e (upgraded from v3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e⬆️ Dependency Upgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade to markdown-it-py v4 by \u003ca href=\"gh-user:chrisjsewell\"\u003egh-user:chrisjsewell\u003c/a\u003e in \u003ca href=\"gh-pr:1060\"\u003egh-pr:1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Drop Python 3.10 and Sphinx 7 by \u003ca href=\"gh-user:chrisjsewell\"\u003egh-user:chrisjsewell\u003c/a\u003e in \u003ca href=\"gh-pr:1059\"\u003egh-pr:1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Drop docutils 0.19 by \u003ca href=\"gh-user:chrisjsewell\"\u003egh-user:chrisjsewell\u003c/a\u003e in \u003ca href=\"gh-pr:1061\"\u003egh-pr:1061\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Add support for Python 3.14 by \u003ca href=\"gh-user:chrisjsewell\"\u003egh-user:chrisjsewell\u003c/a\u003e in \u003ca href=\"gh-pr:1075\"\u003egh-pr:1075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Support Sphinx v9 by \u003ca href=\"gh-user:chrisjsewell\"\u003egh-user:chrisjsewell\u003c/a\u003e in \u003ca href=\"gh-pr:1076\"\u003egh-pr:1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Allow docutils 0.22 by \u003ca href=\"gh-user:chrisjsewell\"\u003egh-user:chrisjsewell\u003c/a\u003e in \u003ca href=\"gh-pr:1084\"\u003egh-pr:1084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e👌 Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👌 Improve generation of meta nodes by \u003ca href=\"gh-user:AA-Turner\"\u003egh-user:AA-Turner\u003c/a\u003e in \u003ca href=\"gh-pr:1080\"\u003egh-pr:1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📚 Documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📚 Fix typo in tables.md by \u003ca href=\"gh-user:electricalgorithm\"\u003egh-user:electricalgorithm\u003c/a\u003e in \u003ca href=\"gh-pr:1034\"\u003egh-pr:1034\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Fix minor typo in \u003ccode\u003ecross-referencing.md\u003c/code\u003e by \u003ca href=\"gh-user:krassowski\"\u003egh-user:krassowski\u003c/a\u003e in \u003ca href=\"gh-pr:1036\"\u003egh-pr:1036\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🔧 Internal / Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Update pre-commit by \u003ca href=\"gh-user:chrisjsewell\"\u003egh-user:chrisjsewell\u003c/a\u003e in \u003ca href=\"gh-pr:1058\"\u003egh-pr:1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Add \u003ccode\u003eAGENTS.md\u003c/code\u003e by \u003ca href=\"gh-user:chrisjsewell\"\u003egh-user:chrisjsewell\u003c/a\u003e in \u003ca href=\"gh-pr:1083\"\u003egh-pr:1083\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/MyST-Parser/compare/v4.0.1...v5.0.0\"\u003ev4.0.1...v5.0.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/executablebooks/MyST-Parser/commit/a139a1fd47277c5adcb7ec033e9f4ad52e6c779e\"\u003e\u003ccode\u003ea139a1f\u003c/code\u003e\u003c/a\u003e 🚀 Release v5.0.0 (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1085\"\u003e#1085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/MyST-Parser/commit/540511016f1f7a791b300201b069c05cf76b6b65\"\u003e\u003ccode\u003e5405110\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1071\"\u003e#1071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/MyST-Parser/commit/19512c00ae2b4af7866850305d63c7a08f81684f\"\u003e\u003ccode\u003e19512c0\u003c/code\u003e\u003c/a\u003e ⬆️ Allow docutils 0.22 (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1084\"\u003e#1084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/MyST-Parser/commit/a9e529f279ebd3192b870632e92d47036b75d240\"\u003e\u003ccode\u003ea9e529f\u003c/code\u003e\u003c/a\u003e ⬆️ Support Sphinx v9 (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1076\"\u003e#1076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/MyST-Parser/commit/fcf78ca56fafd4454e3537cc8728e9af6b1052d0\"\u003e\u003ccode\u003efcf78ca\u003c/code\u003e\u003c/a\u003e 👌 Improve generation of meta nodes (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1080\"\u003e#1080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/MyST-Parser/commit/e0fc7a32ae6dee181213b86c6f85195bc08b2706\"\u003e\u003ccode\u003ee0fc7a3\u003c/code\u003e\u003c/a\u003e 🔧 Add \u003ccode\u003eAGENTS.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/MyST-Parser/commit/59d5384732ea25c9a4d7e8615ee74b97631326da\"\u003e\u003ccode\u003e59d5384\u003c/code\u003e\u003c/a\u003e ⬆️ Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1075\"\u003e#1075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/MyST-Parser/commit/7b7d961c12c1bf267dc5f87f69f87c603f18c8b9\"\u003e\u003ccode\u003e7b7d961\u003c/code\u003e\u003c/a\u003e ⬆️ Update pytest requirement from \u0026lt;9,\u0026gt;=8 to \u0026gt;=9,\u0026lt;10 (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/MyST-Parser/commit/3342a3c7d89dfd8de6a09bbf17bc9134160fe609\"\u003e\u003ccode\u003e3342a3c\u003c/code\u003e\u003c/a\u003e ⬆️ Update sphinxext-opengraph requirement from ~=0.9.0 to ~=0.13.0 (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1066\"\u003e#1066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/MyST-Parser/commit/2cf85deb227418c20fef5e9550a6f7e6671f6d4a\"\u003e\u003ccode\u003e2cf85de\u003c/code\u003e\u003c/a\u003e ⬆️ Update sphinxext-rediraffe requirement from ~=0.2.7 to ~=0.3.0 (\u003ca href=\"https://redirect.github.com/executablebooks/MyST-Parser/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/executablebooks/MyST-Parser/compare/v4.0.1...v5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas-stubs` from 2.3.3.251219 to 2.3.3.260113\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/0cb16c482b2350047d51e5954e9d8bc5ff40f4d0\"\u003e\u003ccode\u003e0cb16c4\u003c/code\u003e\u003c/a\u003e Version 2.3.3.260113\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/bf9a74aa3092f59193f3ca26aae2d9e0c63a813f\"\u003e\u003ccode\u003ebf9a74a\u003c/code\u003e\u003c/a\u003e TYP: bump \u003ccode\u003ety\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1630\"\u003e#1630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/db79b540b34c76ec5a710d366638d2b4949f5bc4\"\u003e\u003ccode\u003edb79b54\u003c/code\u003e\u003c/a\u003e TST: numeric arrays (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1618\"\u003e#1618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/a0d8f9cedd7b1af11ad344b1717402425f403551\"\u003e\u003ccode\u003ea0d8f9c\u003c/code\u003e\u003c/a\u003e GH1614 Add more agg func methods for pivot_table (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1623\"\u003e#1623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/2c83c1fca90b14b2439d3312494642d7c52fd45e\"\u003e\u003ccode\u003e2c83c1f\u003c/code\u003e\u003c/a\u003e BUG: regression on \u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1594\"\u003e#1594\u003c/a\u003e for nightly (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1620\"\u003e#1620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/78fcc5b9da0aba3dda336624bf12f29b9b1214c4\"\u003e\u003ccode\u003e78fcc5b\u003c/code\u003e\u003c/a\u003e TYP: GH1614 Add more agg func methods for \u003ccode\u003epivot_table\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1615\"\u003e#1615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/cf423fdf17933fbf546cb129e9fc4df08c780724\"\u003e\u003ccode\u003ecf423fd\u003c/code\u003e\u003c/a\u003e CLN: move tests for \u003ccode\u003eSeries.astype\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1611\"\u003e#1611\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/0954c0db562e7e868b1839b4adcb2b049e9136e0\"\u003e\u003ccode\u003e0954c0d\u003c/code\u003e\u003c/a\u003e BUG: rename to \u003ccode\u003eNoDefaultDoNotUse\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1616\"\u003e#1616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/b54625adb16fad269b0ea420436a95f24002e5c7\"\u003e\u003ccode\u003eb54625a\u003c/code\u003e\u003c/a\u003e TST: \u003ccode\u003exStringArray\u003c/code\u003e and \u003ccode\u003eNumpyExtensionArray\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas-stubs/issues/1594\"\u003e#1594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas-stubs/commit/df2ebd03248496f309cfdb87719de3f659530eb7\"\u003e\u003ccode\u003edf2ebd0\u003c/code\u003e\u003c/a\u003e DEPR: \u003ccode\u003eravel\u003c/code\u003e in \u003ccode\u003eIndex\u003c/code\u003e and \u003ccode\u003eSeries\u003c/code\u003e \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/36900\"\u003epandas-dev/pandas#36900\u003c/a\u003e pandas-dev/pand...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas-stubs/compare/v2.3.3.251219...v2.3.3.260113\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-python-dateutil` from 2.9.0.20251115 to 2.9.0.20260124\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typeshed-internal/stub_uploader/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tomli` from 2.3.0 to 2.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hukkin/tomli/blob/master/CHANGELOG.md\"\u003etomli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eTOML v1.1.0 compatibility\u003c/li\u003e\n\u003cli\u003eBinary wheels for Windows arm64\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/a678e6fdeffa89bd28e4ecc148b926a4e1bbbc7b\"\u003e\u003ccode\u003ea678e6f\u003c/code\u003e\u003c/a\u003e Bump version: 2.3.0 → 2.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/b8a1358cd4f3932b910333e0179270093596ce64\"\u003e\u003ccode\u003eb8a1358\u003c/code\u003e\u003c/a\u003e Tests: remove now needless \u0026quot;TOML compliance\u0026quot;-\u0026gt;\u0026quot;burntsushi\u0026quot; format conversion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/497937545351e0b4c8afe2299d5ddfb4a7e050cc\"\u003e\u003ccode\u003e4979375\u003c/code\u003e\u003c/a\u003e Update GitHub actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/f890dd1719da0e0f4e83cac39218ba2ded61fa94\"\u003e\u003ccode\u003ef890dd1\u003c/code\u003e\u003c/a\u003e Update pre-commit hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/d9c65c3379b8b92dfab52c8c694605b1aea5a65d\"\u003e\u003ccode\u003ed9c65c3\u003c/code\u003e\u003c/a\u003e Add 2.4.0 change log\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/0efe49d88c2d6ee38e3ad21bfcf64249968fe6c4\"\u003e\u003ccode\u003e0efe49d\u003c/code\u003e\u003c/a\u003e Update README for v2.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/9eb2125ef49071e673d42e383b5221a268665193\"\u003e\u003ccode\u003e9eb2125\u003c/code\u003e\u003c/a\u003e TOML 1.1: Make seconds optional in Date-Time and Time (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/203\"\u003e#203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/12314bde5b89a8bdc32de7403a2a4cf786187bbc\"\u003e\u003ccode\u003e12314bd\u003c/code\u003e\u003c/a\u003e TOML 1.1: Add \\xHH Unicode escape code to basic strings (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/202\"\u003e#202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/2a2aa62f1bc71b89b74d41dd2ab67b5dd24bc129\"\u003e\u003ccode\u003e2a2aa62\u003c/code\u003e\u003c/a\u003e TOML 1.1: Allow newlines and trailing comma in inline tables (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/200\"\u003e#200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/38297f82cd0ef067f1afd2ffb8dfa73b65c398da\"\u003e\u003ccode\u003e38297f8\u003c/code\u003e\u003c/a\u003e Xfail on tests for TOML 1.1 features not yet supported\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hukkin/tomli/compare/2.3.0...2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `narwhals` from 2.14.0 to 2.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/narwhals-dev/narwhals/releases\"\u003enarwhals's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eNarwhals v2.15.0\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etest: unxfail sqlframe tests for list functions (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3383\"\u003e#3383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: Test fairlearn using pytest marker (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3234\"\u003e#3234\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e✨ Enhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etest: unxfail sqlframe for \u003ccode\u003elist.median\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3387\"\u003e#3387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: Add \u003ccode\u003e{Expr,Series}.sin\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3365\"\u003e#3365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efeat: add \u003ccode\u003elist.sort\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3356\"\u003e#3356\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etest: Various GPU fixes (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3390\"\u003e#3390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: separate numpy array for tests (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3385\"\u003e#3385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(docs): Keep table filter only in api-completeness page (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3367\"\u003e#3367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: Fix \u003ccode\u003ehierarchicalforecast\u003c/code\u003e installation (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3362\"\u003e#3362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📖 Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(docs): Keep table filter only in api-completeness page (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3367\"\u003e#3367\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠️ Other improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: Refactor pandas-like pyarrow branching (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3361\"\u003e#3361\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThank you to all our contributors for making this release possible!\n\u003ca href=\"https://github.com/FBruzzesi\"\u003e\u003ccode\u003e@​FBruzzesi\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/MarcoGorelli\"\u003e\u003ccode\u003e@​MarcoGorelli\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/liamholmes31\"\u003e\u003ccode\u003e@​liamholmes31\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/raisadz\"\u003e\u003ccode\u003e@​raisadz\u003c/code\u003e\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/narwhals-dev/narwhals/commit/98f05d078f09f89e96f7f87af9ad3baf01f13df0\"\u003e\u003ccode\u003e98f05d0\u003c/code\u003e\u003c/a\u003e release: Bump version to 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/narwhals-dev/narwhals/commit/5ed4d81bf244dce18fa700f20fbf1536e0ca5cee\"\u003e\u003ccode\u003e5ed4d81\u003c/code\u003e\u003c/a\u003e test: Various GPU fixes (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3390\"\u003e#3390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/narwhals-dev/narwhals/commit/0a0954790e4cfc703b2b7d0afc6b35e996ed2a28\"\u003e\u003ccode\u003e0a09547\u003c/code\u003e\u003c/a\u003e test: unxfail sqlframe for \u003ccode\u003elist.median\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3387\"\u003e#3387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/narwhals-dev/narwhals/commit/74d6cf01a0bb1ced35af65b332c6cbc507797343\"\u003e\u003ccode\u003e74d6cf0\u003c/code\u003e\u003c/a\u003e test: separate numpy array for tests (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3385\"\u003e#3385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/narwhals-dev/narwhals/commit/42a8d7d8123f98e0f8a2e4f2e1fe7812df456689\"\u003e\u003ccode\u003e42a8d7d\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003e{Expr,Series}.sin\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3365\"\u003e#3365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/narwhals-dev/narwhals/commit/84ad2282b6e4ad7680397b7bf8e3c026cc20f301\"\u003e\u003ccode\u003e84ad228\u003c/code\u003e\u003c/a\u003e skip changelog(deps): bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/3379\"\u003e#3379\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/narwhals-dev/narwhals/commit/0640ba1be40ec83af09e9524672aefef1cc7c822\"\u003e\u003ccode\u003e0640ba1\u003c/code\u003e\u003c/a\u003e skip changelog(deps): bump actions/upload-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/narwhals-dev/narwhals/issues/338...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-timeseries/pull/195","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-timeseries/issues/195","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/195/packages"}},{"old_version":"2024.10.3","new_version":"2025.8.25","update_type":"major","path":null,"pr_created_at":"2026-01-30T18:52:25.000Z","version_change":"2024.10.3 → 2025.8.25","issue":{"uuid":"3876949886","node_id":"PR_kwDODe0Bqc7AdYyg","number":371,"state":"closed","title":"Bump the dependencies group across 1 directory with 15 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-02T15:50:48.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-30T18:52:25.000Z","updated_at":"2026-02-02T15:50:50.000Z","time_to_close":248303,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":15,"packages":[{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"anyio","old_version":"4.10.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2025.8.3","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"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.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"roman-numerals-py","old_version":"3.1.0","new_version":"4.1.0","repository_url":"https://github.com/AA-Turner/roman-numerals"},{"name":"starlette","old_version":"0.49.1","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 15 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `3.0.2` | `3.1.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.12.1` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `2026.1.4` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.3` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [roman-numerals-py](https://github.com/AA-Turner/roman-numerals) | `3.1.0` | `4.1.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.1` | `0.52.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.40.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n\n\nUpdates `sphinx-autobuild` from 2024.10.3 to 2025.8.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-rtd-theme` from 3.0.2 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst\"\u003esphinx-rtd-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc2:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc1:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.0.2:\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/readthedocs/sphinx_rtd_theme/commit/795de79c8b311592f5863a25307d85924bf52164\"\u003e\u003ccode\u003e795de79\u003c/code\u003e\u003c/a\u003e Release 3.1.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1676\"\u003e#1676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/66d0fdd910e142d058c20b474338051b0751f03c\"\u003e\u003ccode\u003e66d0fdd\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to the test suite (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1668\"\u003e#1668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/fbe5e6004195a1e75654eface1884485c57eb68e\"\u003e\u003ccode\u003efbe5e60\u003c/code\u003e\u003c/a\u003e 3.1.0rc2 with support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/a76174c0bb0af755718f3cbdffbf97d19d0ac0ec\"\u003e\u003ccode\u003ea76174c\u003c/code\u003e\u003c/a\u003e Add support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1671\"\u003e#1671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/20733c3bcc60df8eda23512a0f3ccb2861486110\"\u003e\u003ccode\u003e20733c3\u003c/code\u003e\u003c/a\u003e Add support for Sphinx 9.0.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1666\"\u003e#1666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/71aacd35048c8bc2ab646ed4e3e9af1075034387\"\u003e\u003ccode\u003e71aacd3\u003c/code\u003e\u003c/a\u003e Update Code of Conduct URL (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1664\"\u003e#1664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/5a263753d52c1628c88392fbf52c729f5a8e79b5\"\u003e\u003ccode\u003e5a26375\u003c/code\u003e\u003c/a\u003e Run tests and build docs with Sphinx 8.2 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1640\"\u003e#1640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/8d4d394dad2d55cf9a4db880effac6aa5c7b12e6\"\u003e\u003ccode\u003e8d4d394\u003c/code\u003e\u003c/a\u003e Sidebar should not be floating on mobile (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1622\"\u003e#1622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/compare/3.0.2...3.1.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.10.0 to 4.12.1\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.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged all functions currently raising the private \u003ccode\u003eNoCurrentAsyncBackend\u003c/code\u003e exception (since v4.12.0) to instead raise the public \u003ccode\u003eNoEventLoopError\u003c/code\u003e exception (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with instance methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1042\"\u003e#1042\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003eCancelScope.cancel()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by passing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to \u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e keyword argument (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically handle all async tests (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/857\"\u003e#857\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously raised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise \u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but \u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this scenario. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\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/a0dccbd78d75886247ae7846b460fd390cc94fbd\"\u003e\u003ccode\u003ea0dccbd\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e1121a735c977c00c18b3a581d28daf83a279833\"\u003e\u003ccode\u003ee1121a7\u003c/code\u003e\u003c/a\u003e Enabled tests for the 4.12.x branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/69ab43e549517ce554f84365fed9da90e806c303\"\u003e\u003ccode\u003e69ab43e\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4f4b33ed56edd1bc4785a368a103ad8138730d91\"\u003e\u003ccode\u003e4f4b33e\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eBlockingPortal.__new__\u003c/code\u003e hack (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/af17d89b80ebbd526215e2dbd025b284730aaa3f\"\u003e\u003ccode\u003eaf17d89\u003c/code\u003e\u003c/a\u003e Replaced the NoCurrentAsyncBackend exception with NoEventLoopError (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1049\"\u003e#1049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4310264312a2e86e792481bdb05bdb381678a6b5\"\u003e\u003ccode\u003e4310264\u003c/code\u003e\u003c/a\u003e Updated pre-commit modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0cc6723ba5a2fdaa98a24852d3681c4ed99b8863\"\u003e\u003ccode\u003e0cc6723\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1051\"\u003e#1051\u003c/a\u003e)\u003c/li\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.10.0...4.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.8.3 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.08.03...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.3 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\u003c/blockquote\u003e\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\u003c/blockquote\u003e\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.3...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.2.1 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/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.10 to 3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eRead about the performance improvements here: \u003ca href=\"https://iscinumpy.dev/post/packaging-faster\"\u003ehttps://iscinumpy.dev/post/packaging-faster\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/900\"\u003epypa/packaging#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/948\"\u003epypa/packaging#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport writing metadata by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/846\"\u003epypa/packaging#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e for \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1003\"\u003epypa/packaging#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifier\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1004\"\u003epypa/packaging#1004\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/897\"\u003epypa/packaging#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/942\"\u003epypa/packaging#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/951\"\u003epypa/packaging#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version 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/pypa/packaging/pull/932\"\u003epypa/packaging#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/954\"\u003epypa/packaging#954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparsions by \u003ca href=\"https://github.com/JP-Ellis\"\u003e\u003ccode\u003e@​JP-Ellis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/939\"\u003epypa/packaging#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e by \u003ca href=\"https://github.com/dholth\"\u003e\u003ccode\u003e@​dholth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/860\"\u003epypa/packaging#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/896\"\u003epypa/packaging#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/868\"\u003epypa/packaging#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e by \u003ca href=\"https://github.com/bwoodsend\"\u003e\u003ccode\u003e@​bwoodsend\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/879\"\u003epypa/packaging#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/925\"\u003epypa/packaging#925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/833\"\u003epypa/packaging#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions 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/pypa/packaging/pull/931\"\u003epypa/packaging#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/953\"\u003epypa/packaging#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA root logger use found by ruff LOG, use \u003ccode\u003epackaging\u003c/code\u003e logger instead by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/965\"\u003epypa/packaging#965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1022\"\u003epypa/packaging#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1024\"\u003epypa/packaging#1024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1033\"\u003epypa/packaging#1033\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1019\"\u003epypa/packaging#1019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/869\"\u003epypa/packaging#869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/bearomorphism\"\u003e\u003ccode\u003e@​bearomorphism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/913\"\u003epypa/packaging#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003es in specifier comparison by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/986\"\u003epypa/packaging#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eSpecifier\u003c/code\u003e's Version by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/985\"\u003epypa/packaging#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/987\"\u003epypa/packaging#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/990\"\u003epypa/packaging#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/988\"\u003epypa/packaging#988\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1055\"\u003epypa/packaging#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/989\"\u003epypa/packaging#989\u003c/a\u003e and regression for \u003ccode\u003epackaging_legacy\u003c/code\u003e fixed by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1048\"\u003epypa/packaging#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/993\"\u003epypa/packaging#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efullmatch\u003c/code\u003e in a couple more places by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/992\"\u003epypa/packaging#992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.0 - 2026-01-20\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock (:pull:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata (:pull:\u003ccode\u003e948\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for writing metadata to a file (:pull:\u003ccode\u003e846\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e on Version (:pull:\u003ccode\u003e1003\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e1004\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e897\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e951\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version (:pull:\u003ccode\u003e932\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. (:pull:\u003ccode\u003e954\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparisons (:pull:\u003ccode\u003e939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e (:pull:\u003ccode\u003e860\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e (:pull:\u003ccode\u003e896\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e (:pull:\u003ccode\u003e868\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e (:pull:\u003ccode\u003e879\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format (:pull:\u003ccode\u003e925\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon (:pull:\u003ccode\u003e833\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions (:pull:\u003ccode\u003e931\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string (:pull:\u003ccode\u003e953\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eA root logger use found, use a \u003ccode\u003epackaging\u003c/code\u003e logger instead (:pull:\u003ccode\u003e965\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e (:pull:\u003ccode\u003e1022\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first (:pull:\u003ccode\u003e1024\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct (:pull:\u003ccode\u003e1033\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup (:pull:\u003ccode\u003e1019\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e (:pull:\u003ccode\u003e869\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e913\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003e's in specifier comparison (:pull:\u003ccode\u003e986\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache the \u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e985\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster (:pull:\u003ccode\u003e987\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup (:pull:\u003ccode\u003e990\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ for \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e988\u003c/code\u003e, :pull:\u003ccode\u003e1055\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e989\u003c/code\u003e, :pull:\u003ccode\u003e1048\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e (:pull:\u003ccode\u003e993\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ere.fullmatch\u003c/code\u003e in a couple more places (:pull:\u003ccode\u003e992\u003c/code\u003e, :pull:\u003ccode\u003e1029\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003emap\u003c/code\u003e instead of generator (:pull:\u003ccode\u003e996\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003e._version\u003c/code\u003e (\u003ccode\u003e_Version\u003c/code\u003e, a \u003ccode\u003eNamedTuple\u003c/code\u003e) (:pull:\u003ccode\u003e995\u003c/code\u003e, :pull:\u003ccode\u003e1062\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3b77a26f5a27473ad3b08194d773f325d018a2d0\"\u003e\u003ccode\u003e3b77a26\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/31371cce593d2bde0dd8c436ecfb7d53cb91cfb6\"\u003e\u003ccode\u003e31371cc\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0 final (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9627a8821f09e4c55cd6e9daadb617b67c4741c2\"\u003e\u003ccode\u003e9627a88\u003c/code\u003e\u003c/a\u003e perf: dual replace (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d5398b8bc19f3fad7b035ceb83023caf06d6e2da\"\u003e\u003ccode\u003ed5398b8\u003c/code\u003e\u003c/a\u003e fix: restore ._version as a compat shim (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3a7b600a126d237b2ad3cd7e25d2cb5c176276af\"\u003e\u003ccode\u003e3a7b600\u003c/code\u003e\u003c/a\u003e Bump for development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d4eefdccf992e963c48011875301d93df6a7f2cc\"\u003e\u003ccode\u003ed4eefdc\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/46189124fb43d8989d370902c80ab156eb83a45d\"\u003e\u003ccode\u003e4618912\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0rc3 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/0cf1b41b4b321ae08cad7d3e49cfaff5578fe813\"\u003e\u003ccode\u003e0cf1b41\u003c/code\u003e\u003c/a\u003e ci: test on first public release of CPythons (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/716beb1c0a5d7a398bf57fbd80bc2501811e616b\"\u003e\u003ccode\u003e716beb1\u003c/code\u003e\u003c/a\u003e perf:  10% faster stripping zeros (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/350a2306700b738f487f251efa278f532b263dee\"\u003e\u003ccode\u003e350a230\u003c/code\u003e\u003c/a\u003e fix: support CPython 3.11.0-3.11.4 and older PyPy3.11 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/25.0...26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `roman-numerals-py` from 3.1.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AA-Turner/roman-numerals/releases\"\u003eroman-numerals-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.1.0\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.0.0\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/AA-Turner/roman-numerals/blob/master/CHANGES.rst\"\u003eroman-numerals-py's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.1.0 (released 17 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003eAdd some debug assertions for unsafe blocks\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.0.0 (released 16 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRename Python package to \u003ccode\u003eroman-numerals\u003c/code\u003e on PyPI.\u003c/li\u003e\n\u003cli\u003ePublish \u003ccode\u003eroman-numerals-py\u003c/code\u003e as a meta-package that depends\non \u003ccode\u003eroman-numerals\u003c/code\u003e and installs no modules.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eIncrease the minimum supported Rust version (MSRV) to 1.81.0.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::error::Error\u003c/code\u003e trait for all error types.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::fmt\u003c/code\u003e traits in \u003ccode\u003eno-std\u003c/code\u003e mode.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eFrom\u0026lt;RomanNumeral\u0026gt;\u003c/code\u003e for most integer types.\u003c/li\u003e\n\u003cli\u003ePublish the \u003ccode\u003eroman-numerals-rs\u003c/code\u003e crate using \u003ccode\u003eTrusted Publishing \u0026lt;https://crates.io/docs/trusted-publishing\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/AA-Turner/roman-numerals/commit/53c9c4eac63b91728fba3c26329163ee57654d21\"\u003e\u003ccode\u003e53c9c4e\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a3793b83fab7064107ac56a482a6fa93bc9c5048\"\u003e\u003ccode\u003ea3793b8\u003c/code\u003e\u003c/a\u003e Add more SAFETY notes and debug assertions to unsafe blocks (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/106\"\u003e#106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/46d346e2d08b634856c79783e404616b65626ba7\"\u003e\u003ccode\u003e46d346e\u003c/code\u003e\u003c/a\u003e Adjust annotations in light of PEP 649\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/b8fae405d948415f7397ae4f64569c53cb623105\"\u003e\u003ccode\u003eb8fae40\u003c/code\u003e\u003c/a\u003e Adjust an example in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a88464130711ad5e8d56e6ff747d17068ae17534\"\u003e\u003ccode\u003ea884641\u003c/code\u003e\u003c/a\u003e Restore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c3e1b6b4e6e02e5e19c26dc6f72bbb7b1060cca5\"\u003e\u003ccode\u003ec3e1b6b\u003c/code\u003e\u003c/a\u003e Release v4.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c335cb63ed97e684a4e9453639bfc7e9f487bb41\"\u003e\u003ccode\u003ec335cb6\u003c/code\u003e\u003c/a\u003e Add publishing step for the \u003ccode\u003eroman-numerals-py\u003c/code\u003e meta-package (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/105\"\u003e#105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/649f6e62e7bd24123d7dd489609ae47168aaeb1b\"\u003e\u003ccode\u003e649f6e6\u003c/code\u003e\u003c/a\u003e Add Trusted Publishing workflow for crates.io (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/104\"\u003e#104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/ffa4dd1b33eae62f1bd1d44549e10a528b8f1f58\"\u003e\u003ccode\u003effa4dd1\u003c/code\u003e\u003c/a\u003e rust: Refactor tests (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/26b41561c1d9813104548777b5ed9622d7125b38\"\u003e\u003ccode\u003e26b4156\u003c/code\u003e\u003c/a\u003e Simplify ASCII detection closures (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AA-Turner/roman-numerals/compare/v3.1.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.49.1 to 0.52.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.52.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003eKludex/starlette#3109\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.52.0...0.52.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.52.0...0.52.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.0\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type safety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/HEAD/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.51.0...0.52.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.51.0...0.52.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.51.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\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/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.52.1 (January 18, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003e#3109\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.0 (January 18, 2026)\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type\nsafety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003e0.51.0 (January 10, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease warning stacklevel on \u003ccode\u003eDeprecationWarning\u003c/code\u003e for wsgi module \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3082\"\u003e#3082\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!...\n\n_Description has been truncated_","html_url":"https://github.com/freedomofpress/securedrop-workstation-docs/pull/371","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/freedomofpress%2Fsecuredrop-workstation-docs/issues/371","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/371/packages"}},{"old_version":"2024.10.3","new_version":"2025.8.25","update_type":"major","path":null,"pr_created_at":"2026-01-26T15:22:55.000Z","version_change":"2024.10.3 → 2025.8.25","issue":{"uuid":"3856426645","node_id":"PR_kwDODe0Bqc6_Y7h-","number":368,"state":"closed","title":"Bump the dependencies group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-30T18:51:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-26T15:22:55.000Z","updated_at":"2026-01-30T18:51:54.000Z","time_to_close":358137,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":16,"packages":[{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"anyio","old_version":"4.10.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2025.8.3","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"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.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"roman-numerals-py","old_version":"3.1.0","new_version":"4.1.0","repository_url":"https://github.com/AA-Turner/roman-numerals"},{"name":"starlette","old_version":"0.49.1","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.6.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `3.0.2` | `3.1.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.12.1` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `2026.1.4` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.3` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [roman-numerals-py](https://github.com/AA-Turner/roman-numerals) | `3.1.0` | `4.1.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.1` | `0.52.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.0` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.40.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n\n\nUpdates `sphinx-autobuild` from 2024.10.3 to 2025.8.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-rtd-theme` from 3.0.2 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst\"\u003esphinx-rtd-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc2:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc1:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.0.2:\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/readthedocs/sphinx_rtd_theme/commit/795de79c8b311592f5863a25307d85924bf52164\"\u003e\u003ccode\u003e795de79\u003c/code\u003e\u003c/a\u003e Release 3.1.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1676\"\u003e#1676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/66d0fdd910e142d058c20b474338051b0751f03c\"\u003e\u003ccode\u003e66d0fdd\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to the test suite (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1668\"\u003e#1668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/fbe5e6004195a1e75654eface1884485c57eb68e\"\u003e\u003ccode\u003efbe5e60\u003c/code\u003e\u003c/a\u003e 3.1.0rc2 with support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/a76174c0bb0af755718f3cbdffbf97d19d0ac0ec\"\u003e\u003ccode\u003ea76174c\u003c/code\u003e\u003c/a\u003e Add support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1671\"\u003e#1671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/20733c3bcc60df8eda23512a0f3ccb2861486110\"\u003e\u003ccode\u003e20733c3\u003c/code\u003e\u003c/a\u003e Add support for Sphinx 9.0.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1666\"\u003e#1666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/71aacd35048c8bc2ab646ed4e3e9af1075034387\"\u003e\u003ccode\u003e71aacd3\u003c/code\u003e\u003c/a\u003e Update Code of Conduct URL (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1664\"\u003e#1664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/5a263753d52c1628c88392fbf52c729f5a8e79b5\"\u003e\u003ccode\u003e5a26375\u003c/code\u003e\u003c/a\u003e Run tests and build docs with Sphinx 8.2 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1640\"\u003e#1640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/8d4d394dad2d55cf9a4db880effac6aa5c7b12e6\"\u003e\u003ccode\u003e8d4d394\u003c/code\u003e\u003c/a\u003e Sidebar should not be floating on mobile (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1622\"\u003e#1622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/compare/3.0.2...3.1.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.10.0 to 4.12.1\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.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged all functions currently raising the private \u003ccode\u003eNoCurrentAsyncBackend\u003c/code\u003e exception (since v4.12.0) to instead raise the public \u003ccode\u003eNoEventLoopError\u003c/code\u003e exception (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with instance methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1042\"\u003e#1042\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003eCancelScope.cancel()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by passing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to \u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e keyword argument (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically handle all async tests (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/857\"\u003e#857\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously raised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise \u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but \u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this scenario. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\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/a0dccbd78d75886247ae7846b460fd390cc94fbd\"\u003e\u003ccode\u003ea0dccbd\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e1121a735c977c00c18b3a581d28daf83a279833\"\u003e\u003ccode\u003ee1121a7\u003c/code\u003e\u003c/a\u003e Enabled tests for the 4.12.x branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/69ab43e549517ce554f84365fed9da90e806c303\"\u003e\u003ccode\u003e69ab43e\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4f4b33ed56edd1bc4785a368a103ad8138730d91\"\u003e\u003ccode\u003e4f4b33e\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eBlockingPortal.__new__\u003c/code\u003e hack (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/af17d89b80ebbd526215e2dbd025b284730aaa3f\"\u003e\u003ccode\u003eaf17d89\u003c/code\u003e\u003c/a\u003e Replaced the NoCurrentAsyncBackend exception with NoEventLoopError (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1049\"\u003e#1049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4310264312a2e86e792481bdb05bdb381678a6b5\"\u003e\u003ccode\u003e4310264\u003c/code\u003e\u003c/a\u003e Updated pre-commit modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0cc6723ba5a2fdaa98a24852d3681c4ed99b8863\"\u003e\u003ccode\u003e0cc6723\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1051\"\u003e#1051\u003c/a\u003e)\u003c/li\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.10.0...4.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.8.3 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.08.03...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.3 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\u003c/blockquote\u003e\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\u003c/blockquote\u003e\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.3...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.2.1 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/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.10 to 3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eRead about the performance improvements here: \u003ca href=\"https://iscinumpy.dev/post/packaging-faster\"\u003ehttps://iscinumpy.dev/post/packaging-faster\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/900\"\u003epypa/packaging#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/948\"\u003epypa/packaging#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport writing metadata by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/846\"\u003epypa/packaging#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e for \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1003\"\u003epypa/packaging#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifier\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1004\"\u003epypa/packaging#1004\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/897\"\u003epypa/packaging#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/942\"\u003epypa/packaging#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/951\"\u003epypa/packaging#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version 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/pypa/packaging/pull/932\"\u003epypa/packaging#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/954\"\u003epypa/packaging#954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparsions by \u003ca href=\"https://github.com/JP-Ellis\"\u003e\u003ccode\u003e@​JP-Ellis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/939\"\u003epypa/packaging#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e by \u003ca href=\"https://github.com/dholth\"\u003e\u003ccode\u003e@​dholth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/860\"\u003epypa/packaging#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/896\"\u003epypa/packaging#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/868\"\u003epypa/packaging#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e by \u003ca href=\"https://github.com/bwoodsend\"\u003e\u003ccode\u003e@​bwoodsend\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/879\"\u003epypa/packaging#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/925\"\u003epypa/packaging#925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/833\"\u003epypa/packaging#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions 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/pypa/packaging/pull/931\"\u003epypa/packaging#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/953\"\u003epypa/packaging#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA root logger use found by ruff LOG, use \u003ccode\u003epackaging\u003c/code\u003e logger instead by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/965\"\u003epypa/packaging#965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1022\"\u003epypa/packaging#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1024\"\u003epypa/packaging#1024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1033\"\u003epypa/packaging#1033\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1019\"\u003epypa/packaging#1019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/869\"\u003epypa/packaging#869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/bearomorphism\"\u003e\u003ccode\u003e@​bearomorphism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/913\"\u003epypa/packaging#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003es in specifier comparison by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/986\"\u003epypa/packaging#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eSpecifier\u003c/code\u003e's Version by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/985\"\u003epypa/packaging#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/987\"\u003epypa/packaging#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/990\"\u003epypa/packaging#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/988\"\u003epypa/packaging#988\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1055\"\u003epypa/packaging#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/989\"\u003epypa/packaging#989\u003c/a\u003e and regression for \u003ccode\u003epackaging_legacy\u003c/code\u003e fixed by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1048\"\u003epypa/packaging#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/993\"\u003epypa/packaging#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efullmatch\u003c/code\u003e in a couple more places by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/992\"\u003epypa/packaging#992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.0 - 2026-01-20\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock (:pull:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata (:pull:\u003ccode\u003e948\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for writing metadata to a file (:pull:\u003ccode\u003e846\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e on Version (:pull:\u003ccode\u003e1003\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e1004\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e897\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e951\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version (:pull:\u003ccode\u003e932\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. (:pull:\u003ccode\u003e954\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparisons (:pull:\u003ccode\u003e939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e (:pull:\u003ccode\u003e860\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e (:pull:\u003ccode\u003e896\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e (:pull:\u003ccode\u003e868\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e (:pull:\u003ccode\u003e879\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format (:pull:\u003ccode\u003e925\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon (:pull:\u003ccode\u003e833\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions (:pull:\u003ccode\u003e931\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string (:pull:\u003ccode\u003e953\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eA root logger use found, use a \u003ccode\u003epackaging\u003c/code\u003e logger instead (:pull:\u003ccode\u003e965\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e (:pull:\u003ccode\u003e1022\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first (:pull:\u003ccode\u003e1024\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct (:pull:\u003ccode\u003e1033\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup (:pull:\u003ccode\u003e1019\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e (:pull:\u003ccode\u003e869\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e913\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003e's in specifier comparison (:pull:\u003ccode\u003e986\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache the \u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e985\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster (:pull:\u003ccode\u003e987\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup (:pull:\u003ccode\u003e990\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ for \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e988\u003c/code\u003e, :pull:\u003ccode\u003e1055\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e989\u003c/code\u003e, :pull:\u003ccode\u003e1048\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e (:pull:\u003ccode\u003e993\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ere.fullmatch\u003c/code\u003e in a couple more places (:pull:\u003ccode\u003e992\u003c/code\u003e, :pull:\u003ccode\u003e1029\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003emap\u003c/code\u003e instead of generator (:pull:\u003ccode\u003e996\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003e._version\u003c/code\u003e (\u003ccode\u003e_Version\u003c/code\u003e, a \u003ccode\u003eNamedTuple\u003c/code\u003e) (:pull:\u003ccode\u003e995\u003c/code\u003e, :pull:\u003ccode\u003e1062\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3b77a26f5a27473ad3b08194d773f325d018a2d0\"\u003e\u003ccode\u003e3b77a26\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/31371cce593d2bde0dd8c436ecfb7d53cb91cfb6\"\u003e\u003ccode\u003e31371cc\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0 final (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9627a8821f09e4c55cd6e9daadb617b67c4741c2\"\u003e\u003ccode\u003e9627a88\u003c/code\u003e\u003c/a\u003e perf: dual replace (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d5398b8bc19f3fad7b035ceb83023caf06d6e2da\"\u003e\u003ccode\u003ed5398b8\u003c/code\u003e\u003c/a\u003e fix: restore ._version as a compat shim (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3a7b600a126d237b2ad3cd7e25d2cb5c176276af\"\u003e\u003ccode\u003e3a7b600\u003c/code\u003e\u003c/a\u003e Bump for development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d4eefdccf992e963c48011875301d93df6a7f2cc\"\u003e\u003ccode\u003ed4eefdc\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/46189124fb43d8989d370902c80ab156eb83a45d\"\u003e\u003ccode\u003e4618912\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0rc3 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/0cf1b41b4b321ae08cad7d3e49cfaff5578fe813\"\u003e\u003ccode\u003e0cf1b41\u003c/code\u003e\u003c/a\u003e ci: test on first public release of CPythons (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/716beb1c0a5d7a398bf57fbd80bc2501811e616b\"\u003e\u003ccode\u003e716beb1\u003c/code\u003e\u003c/a\u003e perf:  10% faster stripping zeros (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/350a2306700b738f487f251efa278f532b263dee\"\u003e\u003ccode\u003e350a230\u003c/code\u003e\u003c/a\u003e fix: support CPython 3.11.0-3.11.4 and older PyPy3.11 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/25.0...26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `roman-numerals-py` from 3.1.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AA-Turner/roman-numerals/releases\"\u003eroman-numerals-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.1.0\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.0.0\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/AA-Turner/roman-numerals/blob/master/CHANGES.rst\"\u003eroman-numerals-py's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.1.0 (released 17 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003eAdd some debug assertions for unsafe blocks\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.0.0 (released 16 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRename Python package to \u003ccode\u003eroman-numerals\u003c/code\u003e on PyPI.\u003c/li\u003e\n\u003cli\u003ePublish \u003ccode\u003eroman-numerals-py\u003c/code\u003e as a meta-package that depends\non \u003ccode\u003eroman-numerals\u003c/code\u003e and installs no modules.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eIncrease the minimum supported Rust version (MSRV) to 1.81.0.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::error::Error\u003c/code\u003e trait for all error types.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::fmt\u003c/code\u003e traits in \u003ccode\u003eno-std\u003c/code\u003e mode.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eFrom\u0026lt;RomanNumeral\u0026gt;\u003c/code\u003e for most integer types.\u003c/li\u003e\n\u003cli\u003ePublish the \u003ccode\u003eroman-numerals-rs\u003c/code\u003e crate using \u003ccode\u003eTrusted Publishing \u0026lt;https://crates.io/docs/trusted-publishing\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/AA-Turner/roman-numerals/commit/53c9c4eac63b91728fba3c26329163ee57654d21\"\u003e\u003ccode\u003e53c9c4e\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a3793b83fab7064107ac56a482a6fa93bc9c5048\"\u003e\u003ccode\u003ea3793b8\u003c/code\u003e\u003c/a\u003e Add more SAFETY notes and debug assertions to unsafe blocks (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/106\"\u003e#106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/46d346e2d08b634856c79783e404616b65626ba7\"\u003e\u003ccode\u003e46d346e\u003c/code\u003e\u003c/a\u003e Adjust annotations in light of PEP 649\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/b8fae405d948415f7397ae4f64569c53cb623105\"\u003e\u003ccode\u003eb8fae40\u003c/code\u003e\u003c/a\u003e Adjust an example in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a88464130711ad5e8d56e6ff747d17068ae17534\"\u003e\u003ccode\u003ea884641\u003c/code\u003e\u003c/a\u003e Restore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c3e1b6b4e6e02e5e19c26dc6f72bbb7b1060cca5\"\u003e\u003ccode\u003ec3e1b6b\u003c/code\u003e\u003c/a\u003e Release v4.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c335cb63ed97e684a4e9453639bfc7e9f487bb41\"\u003e\u003ccode\u003ec335cb6\u003c/code\u003e\u003c/a\u003e Add publishing step for the \u003ccode\u003eroman-numerals-py\u003c/code\u003e meta-package (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/105\"\u003e#105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/649f6e62e7bd24123d7dd489609ae47168aaeb1b\"\u003e\u003ccode\u003e649f6e6\u003c/code\u003e\u003c/a\u003e Add Trusted Publishing workflow for crates.io (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/104\"\u003e#104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/ffa4dd1b33eae62f1bd1d44549e10a528b8f1f58\"\u003e\u003ccode\u003effa4dd1\u003c/code\u003e\u003c/a\u003e rust: Refactor tests (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/26b41561c1d9813104548777b5ed9622d7125b38\"\u003e\u003ccode\u003e26b4156\u003c/code\u003e\u003c/a\u003e Simplify ASCII detection closures (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AA-Turner/roman-numerals/compare/v3.1.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.49.1 to 0.52.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.52.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003eKludex/starlette#3109\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.52.0...0.52.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.52.0...0.52.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.0\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type safety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/HEAD/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.51.0...0.52.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.51.0...0.52.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.51.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\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/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.52.1 (January 18, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003e#3109\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.0 (January 18, 2026)\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type\nsafety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003e0.51.0 (January 10, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease warning stacklevel on \u003ccode\u003eDeprecationWarning\u003c/code\u003e for wsgi module \u003ca href=\"https://re...\n\n_Description has been truncated_","html_url":"https://github.com/freedomofpress/securedrop-workstation-docs/pull/368","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/freedomofpress%2Fsecuredrop-workstation-docs/issues/368","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/368/packages"}},{"old_version":"2024.10.3","new_version":"2025.8.25","update_type":"major","path":null,"pr_created_at":"2026-01-26T04:37:31.000Z","version_change":"2024.10.3 → 2025.8.25","issue":{"uuid":"3854485334","node_id":"PR_kwDOMftbFc6_Sm3X","number":190,"state":"closed","title":"Bump the py-updates group across 1 directory with 83 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-02T04:30:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-26T04:37:31.000Z","updated_at":"2026-02-02T04:30:53.000Z","time_to_close":604401,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"py-updates","update_count":83,"packages":[{"name":"awscli","old_version":"1.40.17","new_version":"1.44.24","repository_url":"https://github.com/aws/aws-cli"},{"name":"polars","old_version":"1.28.1","new_version":"1.37.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"requests","old_version":"2.32.3","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"biopython","old_version":"1.85","new_version":"1.86","repository_url":"https://github.com/biopython/biopython"},{"name":"boto3","old_version":"1.38.18","new_version":"1.42.34","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.38.18","new_version":"1.42.34","repository_url":"https://github.com/boto/botocore"},{"name":"certifi","old_version":"2025.4.26","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"cloudpathlib","old_version":"0.21.1","new_version":"0.23.0","repository_url":"https://github.com/drivendataorg/cloudpathlib"},{"name":"docutils","old_version":"0.19","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"markdown-it-py","old_version":"3.0.0","new_version":"4.0.0","repository_url":"https://github.com/executablebooks/markdown-it-py"},{"name":"numpy","old_version":"2.2.5","new_version":"2.4.1","repository_url":"https://github.com/numpy/numpy"},{"name":"pandas","old_version":"2.2.3","new_version":"3.0.0","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pyarrow","old_version":"20.0.0","new_version":"23.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"pyasn1","old_version":"0.6.1","new_version":"0.6.2","repository_url":"https://github.com/pyasn1/pyasn1"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"rich","old_version":"14.0.0","new_version":"14.3.1","repository_url":"https://github.com/Textualize/rich"},{"name":"rsa","old_version":"4.7.2","new_version":"4.9.1","repository_url":"https://github.com/sybrenstuvel/python-rsa"},{"name":"s3transfer","old_version":"0.12.0","new_version":"0.16.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"structlog","old_version":"25.3.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"tzdata","old_version":"2025.2","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"},{"name":"boto3-stubs","old_version":"1.38.18","new_version":"1.42.34","repository_url":"https://github.com/youtype/mypy_boto3_builder"},{"name":"botocore-stubs","old_version":"1.38.18","new_version":"1.42.34","repository_url":"https://github.com/youtype/botocore-stubs"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"coverage","old_version":"7.8.0","new_version":"7.13.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cryptography","old_version":"44.0.3","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"freezegun","old_version":"1.5.1","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"iniconfig","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"moto","old_version":"5.1.4","new_version":"5.1.20","repository_url":"https://github.com/getmoto/moto"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"mypy-boto3-s3","old_version":"1.38.0","new_version":"1.42.21","repository_url":"https://github.com/youtype/mypy_boto3_builder"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pycparser","old_version":"2.22","new_version":"3.0","repository_url":"https://github.com/eliben/pycparser"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"responses","old_version":"0.25.7","new_version":"0.25.8","repository_url":"https://github.com/getsentry/responses"},{"name":"ruff","old_version":"0.11.10","new_version":"0.14.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-awscrt","old_version":"0.27.2","new_version":"0.31.1","repository_url":"https://github.com/youtype/types-awscrt"},{"name":"types-requests","old_version":"2.32.0.20250515","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-s3transfer","old_version":"0.12.0","new_version":"0.16.0","repository_url":"https://github.com/youtype/types-s3transfer"},{"name":"typing-extensions","old_version":"4.13.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"xmltodict","old_version":"0.14.2","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"alabaster","old_version":"0.7.16","new_version":"1.0.0","repository_url":"https://github.com/sphinx-doc/alabaster"},{"name":"anyio","old_version":"4.9.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.3"},{"name":"cachecontrol","old_version":"0.14.3","new_version":"0.14.4","repository_url":"https://github.com/psf/cachecontrol"},{"name":"click","old_version":"8.2.0","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":"filelock","old_version":"3.18.0","new_version":"3.20.3","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.58.0","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"furo","old_version":"2024.8.6","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"kiwisolver","old_version":"1.4.8","new_version":"1.4.9","repository_url":"https://github.com/nucleic/kiwi"},{"name":"matplotlib","old_version":"3.10.3","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mdit-py-plugins","old_version":"0.4.2","new_version":"0.5.0","repository_url":"https://github.com/executablebooks/mdit-py-plugins"},{"name":"more-itertools","old_version":"10.7.0","new_version":"10.8.0","repository_url":"https://github.com/more-itertools/more-itertools"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.1.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"myst-parser","old_version":"4.0.1","new_version":"5.0.0","repository_url":"https://github.com/executablebooks/MyST-Parser"},{"name":"pillow","old_version":"11.2.1","new_version":"12.1.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"ruamel-yaml","old_version":"0.18.10","new_version":"0.19.1"},{"name":"ruamel-yaml-clib","old_version":"0.2.12","new_version":"0.2.15"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8.3","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"sphinx","old_version":"7.3.7","new_version":"9.0.4","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-autodoc-typehints","old_version":"2.3.0","new_version":"3.6.1","repository_url":"https://github.com/tox-dev/sphinx-autodoc-typehints"},{"name":"sphinx-jinja2-compat","old_version":"0.3.0","new_version":"0.4.1","repository_url":"https://github.com/sphinx-toolbox/sphinx-jinja2-compat"},{"name":"sphinx-prompt","old_version":"1.8.0","new_version":"1.10.2","repository_url":"https://github.com/sbrunner/sphinx-prompt"},{"name":"sphinx-tabs","old_version":"3.4.5","new_version":"3.4.7","repository_url":"https://github.com/executablebooks/sphinx-tabs"},{"name":"sphinx-toolbox","old_version":"4.0.0","new_version":"4.1.2","repository_url":"https://github.com/sphinx-toolbox/sphinx-toolbox"},{"name":"sphinxext-opengraph","old_version":"0.10.0","new_version":"0.13.0","repository_url":"https://github.com/sphinx-doc/sphinxext-opengraph"},{"name":"starlette","old_version":"0.46.2","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"uvicorn","old_version":"0.34.2","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.0.5","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"}],"path":null,"ecosystem":"pip"},"body":"Bumps the py-updates group with 83 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [awscli](https://github.com/aws/aws-cli) | `1.40.17` | `1.44.24` |\n| [polars](https://github.com/pola-rs/polars) | `1.28.1` | `1.37.1` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.32.5` |\n| [biopython](https://github.com/biopython/biopython) | `1.85` | `1.86` |\n| [boto3](https://github.com/boto/boto3) | `1.38.18` | `1.42.34` |\n| [botocore](https://github.com/boto/botocore) | `1.38.18` | `1.42.34` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.4.26` | `2026.1.4` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.4` |\n| [cloudpathlib](https://github.com/drivendataorg/cloudpathlib) | `0.21.1` | `0.23.0` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.19` | `0.22.4` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `3.0.0` | `4.0.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.2.5` | `2.4.1` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `3.0.0` |\n| [pyarrow](https://github.com/apache/arrow) | `20.0.0` | `23.0.0` |\n| [pyasn1](https://github.com/pyasn1/pyasn1) | `0.6.1` | `0.6.2` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.3.1` |\n| [rsa](https://github.com/sybrenstuvel/python-rsa) | `4.7.2` | `4.9.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.12.0` | `0.16.0` |\n| [structlog](https://github.com/hynek/structlog) | `25.3.0` | `25.5.0` |\n| [tzdata](https://github.com/python/tzdata) | `2025.2` | `2025.3` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.6.3` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n| [boto3-stubs](https://github.com/youtype/mypy_boto3_builder) | `1.38.18` | `1.42.34` |\n| [botocore-stubs](https://github.com/youtype/botocore-stubs) | `1.38.18` | `1.42.34` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.8.0` | `7.13.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.3` | `46.0.3` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.5.1` | `1.5.5` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [moto](https://github.com/getmoto/moto) | `5.1.4` | `5.1.20` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [mypy-boto3-s3](https://github.com/youtype/mypy_boto3_builder) | `1.38.0` | `1.42.21` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [responses](https://github.com/getsentry/responses) | `0.25.7` | `0.25.8` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.10` | `0.14.14` |\n| [types-awscrt](https://github.com/youtype/types-awscrt) | `0.27.2` | `0.31.1` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20250515` | `2.32.4.20260107` |\n| [types-s3transfer](https://github.com/youtype/types-s3transfer) | `0.12.0` | `0.16.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.13.2` | `4.15.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.14.2` | `1.0.2` |\n| [alabaster](https://github.com/sphinx-doc/alabaster) | `0.7.16` | `1.0.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.12.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.3` |\n| [cachecontrol](https://github.com/psf/cachecontrol) | `0.14.3` | `0.14.4` |\n| [click](https://github.com/pallets/click) | `8.2.0` | `8.3.1` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.20.3` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.58.0` | `4.61.1` |\n| [furo](https://github.com/pradyunsg/furo) | `2024.8.6` | `2025.12.19` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.8` | `1.4.9` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.3` | `3.10.8` |\n| [mdit-py-plugins](https://github.com/executablebooks/mdit-py-plugins) | `0.4.2` | `0.5.0` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.7.0` | `10.8.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.1.2` |\n| [myst-parser](https://github.com/executablebooks/MyST-Parser) | `4.0.1` | `5.0.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.1.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.5.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.3.2` |\n| ruamel-yaml | `0.18.10` | `0.19.1` |\n| ruamel-yaml-clib | `0.2.12` | `0.2.15` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8.3` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.3.7` | `9.0.4` |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-autodoc-typehints](https://github.com/tox-dev/sphinx-autodoc-typehints) | `2.3.0` | `3.6.1` |\n| [sphinx-jinja2-compat](https://github.com/sphinx-toolbox/sphinx-jinja2-compat) | `0.3.0` | `0.4.1` |\n| [sphinx-prompt](https://github.com/sbrunner/sphinx-prompt) | `1.8.0` | `1.10.2` |\n| [sphinx-tabs](https://github.com/executablebooks/sphinx-tabs) | `3.4.5` | `3.4.7` |\n| [sphinx-toolbox](https://github.com/sphinx-toolbox/sphinx-toolbox) | `4.0.0` | `4.1.2` |\n| [sphinxext-opengraph](https://github.com/sphinx-doc/sphinxext-opengraph) | `0.10.0` | `0.13.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.46.2` | `0.52.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.2` | `0.40.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.0.5` | `1.1.1` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n\n\nUpdates `awscli` from 1.40.17 to 1.44.24\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/3af1873c23374171e0bc9a6891a361221178fd8d\"\u003e\u003ccode\u003e3af1873\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.24'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/3db4f00603a7e7a76ffc0838593db9656e72799e\"\u003e\u003ccode\u003e3db4f00\u003c/code\u003e\u003c/a\u003e Bumping version to 1.44.24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/2c19a9fcf0f35398a280868073b4170c02f4ef5a\"\u003e\u003ccode\u003e2c19a9f\u003c/code\u003e\u003c/a\u003e Update changelog based on model updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/80d79654015909384fe93f268867f5dec1e58705\"\u003e\u003ccode\u003e80d7965\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.23'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/75d1e11e5a5e06d8dcc5637ea26091874275eb99\"\u003e\u003ccode\u003e75d1e11\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.23' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/a220ab958493ad5a52289d964546d66538ee7711\"\u003e\u003ccode\u003ea220ab9\u003c/code\u003e\u003c/a\u003e Bumping version to 1.44.23\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/c48c8ab1a19bdf5f8b3510e9948016443eb7d2e0\"\u003e\u003ccode\u003ec48c8ab\u003c/code\u003e\u003c/a\u003e Update changelog based on model updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/39e70dfeaa3a5dad7c8c49d08c64b79bc299c58c\"\u003e\u003ccode\u003e39e70df\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.22'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/094e6fa721d66f284e1466e758e32120b8594ab7\"\u003e\u003ccode\u003e094e6fa\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.22' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/4cd22ade79f67568ad66b6d406882dcd02a6fa6c\"\u003e\u003ccode\u003e4cd22ad\u003c/code\u003e\u003c/a\u003e Bumping version to 1.44.22\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aws/aws-cli/compare/1.40.17...1.44.24\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `polars` from 1.28.1 to 1.37.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pola-rs/polars/releases\"\u003epolars's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePython Polars 1.37.1\u003c/h2\u003e\n\u003ch2\u003e🚀 Performance improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up \u003ccode\u003eSQL\u003c/code\u003e interface \u0026quot;UNION\u0026quot; clauses (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26039\"\u003e#26039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐞 Bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize slicing support on compressed IPC (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26071\"\u003e#26071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCPU check for musl builds (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26076\"\u003e#26076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate C Stream import errors instead of panicking (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26036\"\u003e#26036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix slicing on compressed IPC (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26066\"\u003e#26066\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📖 Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eClarify min_by/max_by behavior on ties (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26077\"\u003e#26077\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠️ Other improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMark top slow normal tests as slow (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26080\"\u003e#26080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate breaking deps (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26055\"\u003e#26055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix for upstream url bug and update deps (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26052\"\u003e#26052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProperly pin chrono (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26051\"\u003e#26051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't run rust doctests (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26046\"\u003e#26046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate deps (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26042\"\u003e#26042\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIgnore very slow test (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26041\"\u003e#26041\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThank you to all our contributors for making this release possible!\n\u003ca href=\"https://github.com/Voultapher\"\u003e\u003ccode\u003e@​Voultapher\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/alexander-beedie\"\u003e\u003ccode\u003e@​alexander-beedie\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/kdn36\"\u003e\u003ccode\u003e@​kdn36\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nameexhaustion\"\u003e\u003ccode\u003e@​nameexhaustion\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/orlp\"\u003e\u003ccode\u003e@​orlp\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ritchie46\"\u003e\u003ccode\u003e@​ritchie46\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/wtn\"\u003e\u003ccode\u003e@​wtn\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ePython Polars 1.37.0\u003c/h2\u003e\n\u003ch2\u003e🚀 Performance improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up \u003ccode\u003eSQL\u003c/code\u003e interface \u0026quot;ORDER BY\u0026quot; clauses (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26037\"\u003e#26037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd fast kernel for is_nan and use it for numpy NaN-\u0026gt;null conversion (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26034\"\u003e#26034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize ArrayFromIter implementations for ObjectArray (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25712\"\u003e#25712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew streaming NDJSON sink pipeline (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25948\"\u003e#25948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew streaming CSV sink pipeline (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25900\"\u003e#25900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDispatch partitioned usage of \u003ccode\u003esink_*\u003c/code\u003e functions to new-streaming by default (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25910\"\u003e#25910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace ryu with faster zmij (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25885\"\u003e#25885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce memory usage for .item() count in grouped first/last (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25787\"\u003e#25787\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip schema inference if schema provided for \u003ccode\u003escan_csv/ndjson\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25757\"\u003e#25757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd width-aware chunking to prevent degradation with wide data (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25764\"\u003e#25764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse new sink pipeline for write/sink_ipc (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25746\"\u003e#25746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce memory usage when scanning multiple parquet files in streaming (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25747\"\u003e#25747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't call cluster_with_columns optimization if not needed (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25724\"\u003e#25724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e✨ Enhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new \u003ccode\u003epl.PartitionBy\u003c/code\u003e API (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26004\"\u003e#26004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eArrowStreamExportable and sink_delta (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25994\"\u003e#25994\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/pola-rs/polars/commit/bb79993c3aa91d0db7d20be8f75c8075cad97067\"\u003e\u003ccode\u003ebb79993\u003c/code\u003e\u003c/a\u003e Python Polars 1.37.1 (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26078\"\u003e#26078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/26a9d097af5ea7d35f72bb8514ab990ddbce4796\"\u003e\u003ccode\u003e26a9d09\u003c/code\u003e\u003c/a\u003e chore: Mark top slow normal tests as slow (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26080\"\u003e#26080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/451f247ba33506c9822478d0409a5075fec5797c\"\u003e\u003ccode\u003e451f247\u003c/code\u003e\u003c/a\u003e refactor(rust): Simplify \u003ccode\u003ePlPath\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26053\"\u003e#26053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/b532aad910b0fe065b9fbe648944f3a580d3d104\"\u003e\u003ccode\u003eb532aad\u003c/code\u003e\u003c/a\u003e docs: Clarify min_by/max_by behavior on ties (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26077\"\u003e#26077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/707796731ab7cf51f296a9b56a0231a5537e4259\"\u003e\u003ccode\u003e7077967\u003c/code\u003e\u003c/a\u003e fix: Optimize slicing support on compressed IPC (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26071\"\u003e#26071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/44c139746390a0b81b3e908a8a6529cc6efdea1e\"\u003e\u003ccode\u003e44c1397\u003c/code\u003e\u003c/a\u003e fix: CPU check for musl builds (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26076\"\u003e#26076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/35ec39865a1952f60f46d17e461974881844b9c1\"\u003e\u003ccode\u003e35ec398\u003c/code\u003e\u003c/a\u003e chore: Update breaking deps (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26055\"\u003e#26055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/84fa66381626dbd826e2d5a663285fb193356d64\"\u003e\u003ccode\u003e84fa663\u003c/code\u003e\u003c/a\u003e fix(python): Propagate C Stream import errors instead of panicking (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26036\"\u003e#26036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/e9e20e468cb84f966eed1e37a7b23afaf842e88f\"\u003e\u003ccode\u003ee9e20e4\u003c/code\u003e\u003c/a\u003e fix: Fix slicing on compressed IPC (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26066\"\u003e#26066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/b0fdbd34d430d934bda9a4ca3f75e136223bd95b\"\u003e\u003ccode\u003eb0fdbd3\u003c/code\u003e\u003c/a\u003e chore: Fix for upstream url bug and update deps (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26052\"\u003e#26052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pola-rs/polars/compare/py-1.28.1...py-1.37.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.32.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6965\"\u003e#6965\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS.\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `biopython` from 1.85 to 1.86\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/biopython/biopython/blob/master/NEWS.rst\"\u003ebiopython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e28 October 2025: Biopython 1.86\u003c/h1\u003e\n\u003cp\u003eThis release of Biopython supports Python 3.10, 3.11, 3.12, 3.13 and 3.14.  It\nhas also been tested on PyPy3.10 v7.3.19.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.SearchIO\u003c/code\u003e now supports parsing the tabular and plain text output of\n\u003ccode\u003eInfernal \u0026lt;http://eddylab.org/infernal/\u0026gt;\u003c/code\u003e (v1.0.0+) RNA search tool. The\nformat names are \u003ccode\u003einfernal-tab\u003c/code\u003e and \u003ccode\u003einfernal-text\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe default value of the gap score of a \u003ccode\u003ePairwiseAligner\u003c/code\u003e object was changed\nin this release.  Previously, for consistency with \u003ccode\u003eBio.pairwise2\u003c/code\u003e, the\ndefault value for gap score was 0.  However, this means that a mismatch, an\ninsertion followed by a deletion, and a deletion followed by an insertion all\nget assigned a score of 0.  The aligner then finds a large number of alignments\nthat are logically the same, but have trivial differences between them.  For\nexample, aligning AAACAAA to AAAGAAA previously yielded the following three\nalignments, all with score 6::\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e AAACAAA        AAAC-AAA        AAA-CAAA\n AAAGAAA        AAA-GAAA        AAAG-AAA\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eWith the new default parameter for the gap score, only the first alignment is\nreturned.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.PDB.PDBIO\u003c/code\u003e now ensures that b-factor values are always at most 6 characters to\nensure that we do not violate the wwPDB specification. This should not have an impact\non the majority of uses, as b-factor values are generally small (less than 100). When\n1000 \u0026lt;= b-factor \u0026lt; 10_000, the value is rounded to a single decimal place. When,\n10_000 \u0026lt;= b-factor \u0026lt; 999_999, the value is rounded to zero decimal places. Values\nabove 999_999 are now clamped. The justification for this is the rise in the b-factor\nfield being used for additional metadata, typically from computational tools.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.Align\u003c/code\u003e now provides a method \u003ccode\u003eAlignment.from_alignments_with_same_reference\u003c/code\u003e\nto construct a multiple sequence alignment from a collection of alignments\nthat share the same reference sequence.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.PDB.PDBIO\u003c/code\u003e will now raise module specific warnings:\n\u003ccode\u003eBio.PDB.PDBExceptions.PDBIOWarning\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.PDB.SCADIO\u003c/code\u003e now supports object selection by color in the OpenSCAD\noutput file.  This enables generation of separate STL files for each color for\nprinting protein structures on multi-material 3D printers.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eiplotx\u003c/code\u003e library is mentioned in the Tutorial as an option to visualise\ntrees using complex style options.\u003c/p\u003e\n\u003cp\u003eMany thanks to the Biopython developers and community for making this release\npossible, especially the following contributors:\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\u003eSee full diff in \u003ca href=\"https://github.com/biopython/biopython/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.38.18 to 1.42.34\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/9a285e6beab78c1f4c97047674ec09ac5451c4d1\"\u003e\u003ccode\u003e9a285e6\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.34'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/29574158e22c3b2d6ca044eef1dc054d28d73485\"\u003e\u003ccode\u003e2957415\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.34\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/8e1fd2e6e5c1fd6236cacf2dc9064d55d8baf07b\"\u003e\u003ccode\u003e8e1fd2e\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/9cadce52dae6e58e450a9ac0745a721dda8a4044\"\u003e\u003ccode\u003e9cadce5\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.33'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/ee24f15c3013be4f4c6e76bfbc948b910e6f8f35\"\u003e\u003ccode\u003eee24f15\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.33' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/b0f2cf318d9bef8eaf3f11cd81b22ce67810ea82\"\u003e\u003ccode\u003eb0f2cf3\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.33\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/6e690ed2966406d4b53532a44e70c93370368ae6\"\u003e\u003ccode\u003e6e690ed\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/b84ec5ebd8880b77e998bfdd28984f214c3f1fa3\"\u003e\u003ccode\u003eb84ec5e\u003c/code\u003e\u003c/a\u003e Add BOTOCORE_TCP_KEEPALIVE environment variable documentation (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4705\"\u003e#4705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/36cebd34052db2fc7449b85ac04f903fb40f8b2f\"\u003e\u003ccode\u003e36cebd3\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.32'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/d4d10440677e98c5c15fb6c84cc605bd7401fd74\"\u003e\u003ccode\u003ed4d1044\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.32' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.38.18...1.42.34\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `botocore` from 1.38.18 to 1.42.34\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/d52e6ce4372810dc3a0d6701b366f54add0aedae\"\u003e\u003ccode\u003ed52e6ce\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.34'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/fce5268f1cd4063f30e3faec44da7efa309cae5f\"\u003e\u003ccode\u003efce5268\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.34\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/45e43f9baa8c57d13eb75d7566f1401366a1a188\"\u003e\u003ccode\u003e45e43f9\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/b9ed58fa2f31170724538f6ed86e8cbf833de8fd\"\u003e\u003ccode\u003eb9ed58f\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.33'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/48062d233b8173af5af60afb85443e04c6520146\"\u003e\u003ccode\u003e48062d2\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.33' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/8eb5ab6cd38ba8d94d938fac2e6086bd918760dc\"\u003e\u003ccode\u003e8eb5ab6\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.33\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/05b651e910c4b59a971a2566afb4b82a51fb00fc\"\u003e\u003ccode\u003e05b651e\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/aba67690e5aa14f58083dfa168d7fc09681c884a\"\u003e\u003ccode\u003eaba6769\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/3549e0136b656df25e985bdb85233f95da5851d3\"\u003e\u003ccode\u003e3549e01\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.32'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/0847d5e023fd0f7d0e19a154ee22a46e8f56bc38\"\u003e\u003ccode\u003e0847d5e\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.32' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.38.18...1.42.34\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.4.26 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.04.26...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cloudpathlib` from 0.21.1 to 0.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/drivendataorg/cloudpathlib/releases\"\u003ecloudpathlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14 (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/529\"\u003e#529\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/530\"\u003e#530\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eChanged \u003ccode\u003eCloudPath.copy\u003c/code\u003e to have the first parameter named \u003ccode\u003etarget\u003c/code\u003e instead of \u003ccode\u003edestination\u003c/code\u003e and added new \u003ccode\u003efollow_symlinks\u003c/code\u003e and \u003ccode\u003epreserve_metadata\u003c/code\u003e kwargs. \u003cstrong\u003eBreaking change for users that relied on the first parameter being named \u003ccode\u003edestination\u003c/code\u003e instead of \u003ccode\u003etarget\u003c/code\u003e.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.copy_into\u003c/code\u003e to copy a file or directory into another file or directory.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.move\u003c/code\u003e to move a file or directory to another location.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.move_into\u003c/code\u003e to move a file or directory into another file or directory.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPathInfo\u003c/code\u003e and \u003ccode\u003eCloudPath.info\u003c/code\u003e to get information about a file or directory.\u003c/li\u003e\n\u003cli\u003eAdded additional no-op kwargs to \u003ccode\u003emkdir\u003c/code\u003e, \u003ccode\u003etouch\u003c/code\u003e, \u003ccode\u003eglob\u003c/code\u003e, \u003ccode\u003erglob\u003c/code\u003e, \u003ccode\u003estat\u003c/code\u003e to match pathlib.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue with GS credentials, using default auth enables a wider set of authentication methods in GS (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/390\"\u003e#390\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/514\"\u003e#514\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ljyanesm\"\u003e\u003ccode\u003e@​ljyanesm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for http(s) urls with \u003ccode\u003eHttpClient\u003c/code\u003e, \u003ccode\u003eHttpPath\u003c/code\u003e, \u003ccode\u003eHttpsClient\u003c/code\u003e, and \u003ccode\u003eHttpsPath\u003c/code\u003e. (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/455\"\u003e#455\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded experimental support for patching the builtins \u003ccode\u003eopen\u003c/code\u003e, \u003ccode\u003eos\u003c/code\u003e, \u003ccode\u003eos.path\u003c/code\u003e, and \u003ccode\u003eglob\u003c/code\u003e to work with \u003ccode\u003eCloudPath\u003c/code\u003e objects. It is off by default; see the new \u0026quot;Compatibility\u0026quot; section in the docs for more information. (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/128\"\u003e#128\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/322\"\u003e#322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eCloudPath(*parts)\u003c/code\u003e to create a \u003ccode\u003eCloudPath\u003c/code\u003e object from a list of parts (to match \u003ccode\u003epathlib.Path\u003c/code\u003e). \u003cstrong\u003eThis is a potentially breaking change for users that relied on the second arg being the \u003ccode\u003eclient\u003c/code\u003e instead of making it an explicit kwarg.\u003c/strong\u003e (PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/322\"\u003e#322\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/drivendataorg/cloudpathlib/blob/master/HISTORY.md\"\u003ecloudpathlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.23.0 (2025-10-07)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14 (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/529\"\u003e#529\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/530\"\u003e#530\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eChanged \u003ccode\u003eCloudPath.copy\u003c/code\u003e to have the first parameter named \u003ccode\u003etarget\u003c/code\u003e instead of \u003ccode\u003edestination\u003c/code\u003e and added new \u003ccode\u003efollow_symlinks\u003c/code\u003e and \u003ccode\u003epreserve_metadata\u003c/code\u003e kwargs. \u003cstrong\u003eBreaking change for users that relied on the first parameter being named \u003ccode\u003edestination\u003c/code\u003e instead of \u003ccode\u003etarget\u003c/code\u003e.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.copy_into\u003c/code\u003e to copy a file or directory into another file or directory.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.move\u003c/code\u003e to move a file or directory to another location.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.move_into\u003c/code\u003e to move a file or directory into another file or directory.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPathInfo\u003c/code\u003e and \u003ccode\u003eCloudPath.info\u003c/code\u003e to get information about a file or directory.\u003c/li\u003e\n\u003cli\u003eAdded additional no-op kwargs to \u003ccode\u003emkdir\u003c/code\u003e, \u003ccode\u003etouch\u003c/code\u003e, \u003ccode\u003eglob\u003c/code\u003e, \u003ccode\u003erglob\u003c/code\u003e, \u003ccode\u003estat\u003c/code\u003e to match pathlib.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.22.0 (2025-08-29)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue with GS credentials, using default auth enables a wider set of authentication methods in GS (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/390\"\u003e#390\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/514\"\u003e#514\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ljyanesm\"\u003e\u003ccode\u003e@​ljyanesm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for http(s) urls with \u003ccode\u003eHttpClient\u003c/code\u003e, \u003ccode\u003eHttpPath\u003c/code\u003e, \u003ccode\u003eHttpsClient\u003c/code\u003e, and \u003ccode\u003eHttpsPath\u003c/code\u003e. (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/455\"\u003e#455\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded experimental support for patching the builtins \u003ccode\u003eopen\u003c/code\u003e, \u003ccode\u003eos\u003c/code\u003e, \u003ccode\u003eos.path\u003c/code\u003e, and \u003ccode\u003eglob\u003c/code\u003e to work with \u003ccode\u003eCloudPath\u003c/code\u003e objects. It is off by default; see the new \u0026quot;Compatibility\u0026quot; section in the docs for more information. (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/128\"\u003e#128\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/322\"\u003e#322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eCloudPath(*parts)\u003c/code\u003e to create a \u003ccode\u003eCloudPath\u003c/code\u003e object from a list of parts (to match \u003ccode\u003epathlib.Path\u003c/code\u003e). \u003cstrong\u003eThis is a potentially breaking change for users that relied on the second arg being the \u003ccode\u003eclient\u003c/code\u003e instead of making it an explicit kwarg.\u003c/strong\u003e (PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/322\"\u003e#322\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/drivendataorg/cloudpathlib/commit/28f1d943078517262d045ae50136edf27a5298a1\"\u003e\u003ccode\u003e28f1d94\u003c/code\u003e\u003c/a\u003e WIP Support 3.14 (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/fec5918d6725e9f1f52bee003528f4f854454980\"\u003e\u003ccode\u003efec5918\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish in /.github/workflows (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/e7900023bf4b32b70ca5b2d798f9ce52187582f8\"\u003e\u003ccode\u003ee790002\u003c/code\u003e\u003c/a\u003e version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/bb1f1e4cb5eba0928cec2aaff30cb0f5ace1f108\"\u003e\u003ccode\u003ebb1f1e4\u003c/code\u003e\u003c/a\u003e WIP: Patch open, os and os.path builtins (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/322\"\u003e#322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/12005505fc29ab4183968022a487416a31b1a1bd\"\u003e\u003ccode\u003e1200550\u003c/code\u003e\u003c/a\u003e Refactor GS authentication to use default credentials (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/514\"\u003e#514\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/526\"\u003e#526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/b21cac14f0090021594f7e3afae9c48f5d7dbd46\"\u003e\u003ccode\u003eb21cac1\u003c/code\u003e\u003c/a\u003e Implement HTTP(s) support (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/863e884cbf1cf141cdf7bf9c0623e0cd3d27841d\"\u003e\u003ccode\u003e863e884\u003c/code\u003e\u003c/a\u003e fix for azure typing differences (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/65c5c012bd4297ce4e812cfb8bbf9827db346e03\"\u003e\u003ccode\u003e65c5c01\u003c/code\u003e\u003c/a\u003e Set pytest-cases\u0026gt;=3.9.1 (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/drivendataorg/cloudpathlib/compare/v0.21.1...v0.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `docutils` from 0.19 to 0.22.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rtfd/recommonmark/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.10 to 3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `jmespath` from 1.0.1 to 1.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jmespath/jmespath.py/blob/develop/CHANGELOG.rst\"\u003ejmespath's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix concurrency issue with cache\n(\u003ccode\u003epr [#335](https://github.com/jmespath/jmespath.py/issues/335) \u0026lt;https://github.com/jmespath/jmespath.py/pull/335\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded support for Python 3.12-3.14 (\u003ccode\u003epr [#331](https://github.com/jmespath/jmespath.py/issues/331) \u0026lt;https://github.com/jmespath/jmespath.py/pull/331\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eRemoved support for Python 3.7-3.8 (\u003ccode\u003epr [#335](https://github.com/jmespath/jmespath.py/issues/335) \u0026lt;https://github.com/jmespath/jmespath.py/pull/335\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/jmespath/jmespath.py/commit/6ff419a8b171d055a9bfc6904605bceb8b7a80ef\"\u003e\u003ccode\u003e6ff419a\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.1.0'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmespath/jmespath.py/commit/17e964f81911b49babb33e8697b34a31f869420f\"\u003e\u003ccode\u003e17e964f\u003c/code\u003e\u003c/a\u003e Bump version to 1.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmespath/jmespath.py/commit/5ce13aab582ba08b07e1c615feeb3654a7cd8d62\"\u003e\u003ccode\u003e5ce13aa\u003c/code\u003e\u003c/a\u003e Merge branch 'v1.1.0' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmespath/jmespath.py/commit/d8f0457f8f962724b2c1ae12f79d3ba65edf4d82\"\u003e\u003ccode\u003ed8f0457\u003c/code\u003e\u003c/a\u003e Revert versions back to current version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmespath/jmespath.py/commit/8cb30825f62675f6018b812faa9e2c9566eba2e3\"\u003e\u003ccode\u003e8cb3082\u003c/code\u003e\u003c/a\u003e 1.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmespath/jmespath.py/commit/6e379910c1bc0ec0339b05da73e32cad9d3dddbc\"\u003e\u003ccode\u003e6e37991\u003c/code\u003e\u003c/a\u003e Update permissions in codeql.yml workflow (\u003ca href=\"https://redirect.github.com/jmespath/jmespath.py/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmespath/jmespath.py/commit/141734d98ac79c165ec31aa1c18dd29efc45ac49\"\u003e\u003ccode\u003e141734d\u003c/code\u003e\u003c/a\u003e Bring .github settings up-to-date (\u003ca href=\"https://redirect.github.com/jmespath/jmespath.py/issues/336\"\u003e#336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmespath/jmespath.py/commit/07e30cf011056386c3dade2502a53eb2b1d4b3c1\"\u003e\u003ccode\u003e07e30cf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jmespath/jmespath.py/issues/337\"\u003e#337\u003c/a\u003e from nateprewitt/python_changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmespath/jmespath.py/commit/9170711017c2be9e3057a384e4a6061ef71bdc6f\"\u003e\u003ccode\u003e9170711\u003c/code\u003e\u003c/a\u003e Add missing changelog entries for Python support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jmespath/jmespath.py/commit/cdb9327fd597dda1aff703e6e5b98d79503c6f4e\"\u003e\u003ccode\u003ecdb9327\u003c/code\u003e\u003c/a\u003e Fix file encoding for Windows\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jmespath/jmespath.py/compare/1.0.1...1.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markdown-it-py` from 3.0.0 to 4.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/markdown-it-py/releases\"\u003emarkdown-it-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis primarily drops support for Python 3.8 and 3.9, adds support for Python 3.13,\nand updates the parser to comply with Commonmark 0.31.2 and Markdown-It v14.1.0.\u003c/p\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Drop Python 3.8, test 3.13 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/342\"\u003eexecutablebooks/markdown-it-py#342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Drop support for Python 3.9 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/360\"\u003eexecutablebooks/markdown-it-py#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Comply with Commonmark 0.31.2 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/362\"\u003eexecutablebooks/markdown-it-py#362\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👌 Improve performance of \u0026quot;text\u0026quot; inline rule by \u003ca href=\"https://github.com/hukkin\"\u003e\u003ccode\u003e@​hukkin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/347\"\u003eexecutablebooks/markdown-it-py#347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 Use \u003ccode\u003estr.removesuffix\u003c/code\u003e by \u003ca href=\"https://github.com/hukkin\"\u003e\u003ccode\u003e@​hukkin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/348\"\u003eexecutablebooks/markdown-it-py#348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 limit the number of autocompleted cells in a table by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/364\"\u003eexecutablebooks/markdown-it-py#364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 fix quadratic complexity in reference parser by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/367\"\u003eexecutablebooks/markdown-it-py#367\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix emphasis inside raw links bugs by \u003ca href=\"https://github.com/tsutsu3\"\u003e\u003ccode\u003e@​tsutsu3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/320\"\u003eexecutablebooks/markdown-it-py#320\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Replace black and isort with ruff formatter by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/313\"\u003eexecutablebooks/markdown-it-py#313\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Fixed Code Style paragraph still referring to flake8 by \u003ca href=\"https://github.com/venthur\"\u003e\u003ccode\u003e@​venthur\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/309\"\u003eexecutablebooks/markdown-it-py#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Add \u0026quot;store_labels\u0026quot; to OptionsType by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/343\"\u003eexecutablebooks/markdown-it-py#343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Move \u003ccode\u003ecode_style\u003c/code\u003e to dependency group by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/344\"\u003eexecutablebooks/markdown-it-py#344\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Update codecov action by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/345\"\u003eexecutablebooks/markdown-it-py#345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Update pre-commit and upload-artifact by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/359\"\u003eexecutablebooks/markdown-it-py#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Improve spec update script by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/361\"\u003eexecutablebooks/markdown-it-py#361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 simplify logic in scanDelims by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/365\"\u003eexecutablebooks/markdown-it-py#365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🧪 Add CI testing for Python 3.12 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/303\"\u003eexecutablebooks/markdown-it-py#303\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🧪 Fix codecov by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/332\"\u003eexecutablebooks/markdown-it-py#332\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📚 Fix typo by \u003ca href=\"https://github.com/bwagner\"\u003e\u003ccode\u003e@​bwagner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/315\"\u003eexecutablebooks/markdown-it-py#315\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Fix RTD build by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/322\"\u003eexecutablebooks/markdown-it-py#322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 DOCS: Fix a few old URLs by \u003ca href=\"https://github.com/elijahgreenstein\"\u003e\u003ccode\u003e@​elijahgreenstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/358\"\u003eexecutablebooks/markdown-it-py#358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Improve README by \u003ca href=\"https://github.com/mrmurilo75\"\u003e\u003ccode\u003e@​mrmurilo75\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/340\"\u003eexecutablebooks/markdown-it-py#340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Fix CI badge link by \u003ca href=\"https://github.com/tsutsu3\"\u003e\u003ccode\u003e@​tsutsu3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/291\"\u003eexecutablebooks/markdown-it-py#291\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Update docs by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/292\"\u003eexecutablebooks/markdown-it-py#292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Add icon to readme by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/293\"\u003eexecutablebooks/markdown-it-py#293\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Update icon by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/294\"\u003eexecutablebooks/markdown-it-py#294\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 DOCS: Clarify docs regarding security configuration by \u003ca href=\"https://github.com/djramones\"\u003e\u003ccode\u003e@​djramones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/296\"\u003eexecutablebooks/markdown-it-py#296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Fix the RTD build by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/311\"\u003eexecutablebooks/markdown-it-py#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 DOCS: Fix typos by \u003ca href=\"https://github.com/elijahgreenstein\"\u003e\u003ccode\u003e@​elijahgreenstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/366\"\u003eexecutablebooks/markdown-it-py#366\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/executablebooks/markdown-it-py/blob/master/CHANGELOG.md\"\u003emarkdown-it-py's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.0 - 2024-08-10\u003c/h2\u003e\n\u003cp\u003eThis primarily drops support for Python 3.9, adds support for Python 3.13,\nand updates the parser to comply with Commonmark 0.31.2 and Markdown-It v14.1.0.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Drop support for Python 3.9 in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/360\"\u003e#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Comply with Commonmark 0.31.2 in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/362\"\u003e#362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 Improve performance of \u0026quot;text\u0026quot; inline rule in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/347\"\u003e#347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 Use \u003ccode\u003estr.removesuffix\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/348\"\u003e#348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 limit the number of autocompleted cells in a table in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/364\"\u003e#364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 fix quadratic complexity in reference parser in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/367\"\u003e#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 Fix emphasis inside raw links bugs in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/320\"\u003e#320\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/markdown-it-py/compare/v3.0.0...v4.0.0\"\u003ehttps://github.com/executablebooks/markdown-it-py/compare/v3.0.0...v4.0.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/executablebooks/markdown-it-py/commit/c62983f1554124391b47170180e6c62df4d476ca\"\u003e\u003ccode\u003ec62983f\u003c/code\u003e\u003c/a\u003e 🚀 RELEASE v4.0.0 (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/368\"\u003e#368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/9e93bd554147ffb8582581e14620c7611103d2ff\"\u003e\u003ccode\u003e9e93bd5\u003c/code\u003e\u003c/a\u003e 👌 fix quadratic complexity in reference parser (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/da45c8764b2077425c091fa1811bbb1c5f211bd1\"\u003e\u003ccode\u003eda45c87\u003c/code\u003e\u003c/a\u003e 📚 DOCS: Fix typos (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/87b16e272bf8207182084e07a63253b98fc437d7\"\u003e\u003ccode\u003e87b16e2\u003c/code\u003e\u003c/a\u003e 🔧 simplify logic in scanDelims (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/e4009641db528444b85d384af815e9cad997a016\"\u003e\u003ccode\u003ee400964\u003c/code\u003e\u003c/a\u003e 👌 limit the number of autocompleted cells in a table (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/4535d77edcb5f51450a266135687eeae8bcc5033\"\u003e\u003ccode\u003e4535d77\u003c/code\u003e\u003c/a\u003e ⬆️ Comply with Commonmark 0.31.2 (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/8eb20ac1cb63e09dcd78e84a0c71dab8446bb73c\"\u003e\u003ccode\u003e8eb20ac\u003c/code\u003e\u003c/a\u003e 🔧 Improve spec update script (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/fb9d3ab646e4f752dc8fd52e1dd7613c350ff190\"\u003e\u003ccode\u003efb9d3ab\u003c/code\u003e\u003c/a\u003e ⬆️ Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/9ffe841832d33264201aaff120349f001a02953a\"\u003e\u003ccode\u003e9ffe841\u003c/code\u003e\u003c/a\u003e 📚 DOCS: Fix a few old URLs (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/154fe43feb17947e2c933d0bb3e26618129909a8\"\u003e\u003ccode\u003e154fe43\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit and upload-artifact (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/executablebooks/markdown-it-py/compare/v3.0.0...v4.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.2.5 to 2.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.1 (Jan 10, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.1 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.1 is a patch release that fixes bugs discoved after the\n2.4.0 release. In particular, the typo \u003ccode\u003eSeedlessSequence\u003c/code\u003e is preserved to\nenable wheels using the random Cython API and built against NumPy \u0026lt; 2.4.0\nto run without errors.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 9 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAlexander Shadchin\u003c/li\u003e\n\u003cli\u003eBill Tompkins +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMarten van Kerkwijk\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eRaghuveer Devulapalli\u003c/li\u003e\n\u003cli\u003eRalf Gommers\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 15 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30490\"\u003e#30490\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30503\"\u003e#30503\u003c/a\u003e: DOC: \u003ccode\u003enumpy.select\u003c/code\u003e: fix \u003ccode\u003edefault\u003c/code\u003e parameter docstring...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30504\"\u003e#30504\u003c/a\u003e: REV: Revert part of \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30164\"\u003e#30164\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30500\"\u003e#30500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30506\"\u003e#30506\u003c/a\u003e: TYP: \u003ccode\u003enumpy.select\u003c/code\u003e: allow passing array-like \u003ccode\u003edefault\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30507\"\u003e#30507\u003c/a\u003e: MNT: use if constexpr for compile-time branch selection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30513\"\u003e#30513\u003c/a\u003e: BUG: Fix leak i...\n\n_Description has been truncated_","html_url":"https://github.com/reichlab/cladetime/pull/190","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/reichlab%2Fcladetime/issues/190","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/190/packages"}},{"old_version":"2024.10.3","new_version":"2025.8.25","update_type":"major","path":null,"pr_created_at":"2026-01-19T09:18:21.000Z","version_change":"2024.10.3 → 2025.8.25","issue":{"uuid":"3828761453","node_id":"PR_kwDOOQg2wc699WhG","number":17,"state":"closed","title":"ci: doc: bump the doc-deps group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-16T08:40:32.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-19T09:18:21.000Z","updated_at":"2026-02-16T08:40:33.000Z","time_to_close":2416931,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"ci: doc: bump","group_name":"doc-deps","update_count":10,"packages":[{"name":"anytree","old_version":"2.12.1","new_version":"2.13.0","repository_url":"https://github.com/c0fec0de/anytree"},{"name":"doxmlparser","old_version":"1.13.2","new_version":"1.16.1","repository_url":"https://github.com/doxygen/doxygen"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"sphinx-sitemap","old_version":"2.6.0","new_version":"2.9.0","repository_url":"https://github.com/jdillard/sphinx-sitemap"},{"name":"sphinx-togglebutton","old_version":"0.3.2","new_version":"0.4.4","repository_url":"https://github.com/executablebooks/sphinx-togglebutton"},{"name":"sphinxcontrib-svg2pdfconverter","old_version":"1.3.0","new_version":"2.0.0","repository_url":"https://github.com/missinglinkelectronics/sphinxcontrib-svg2pdfconverter"}],"path":null,"ecosystem":"pip"},"body":"Bumps the doc-deps group with 10 updates in the /doc directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [anytree](https://github.com/c0fec0de/anytree) | `2.12.1` | `2.13.0` |\n| [doxmlparser](https://github.com/doxygen/doxygen) | `1.13.2` | `1.16.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `3.0.2` | `3.1.0` |\n| [sphinx-sitemap](https://github.com/jdillard/sphinx-sitemap) | `2.6.0` | `2.9.0` |\n| [sphinx-togglebutton](https://github.com/executablebooks/sphinx-togglebutton) | `0.3.2` | `0.4.4` |\n| [sphinxcontrib-svg2pdfconverter](https://github.com/missinglinkelectronics/sphinxcontrib-svg2pdfconverter) | `1.3.0` | `2.0.0` |\n\n\nUpdates `anytree` from 2.12.1 to 2.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/c0fec0de/anytree/releases\"\u003eanytree's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e270 build broken with poetry core 200 by \u003ca href=\"https://github.com/c0fec0de\"\u003e\u003ccode\u003e@​c0fec0de\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/pull/272\"\u003ec0fec0de/anytree#272\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix test_pickle.py not actually testing unpickled file by \u003ca href=\"https://github.com/kartben\"\u003e\u003ccode\u003e@​kartben\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/pull/266\"\u003ec0fec0de/anytree#266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix ruff issues by \u003ca href=\"https://github.com/c0fec0de\"\u003e\u003ccode\u003e@​c0fec0de\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/pull/273\"\u003ec0fec0de/anytree#273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixes \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/issues/249\"\u003e#249\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/issues/250\"\u003e#250\u003c/a\u003e by \u003ca href=\"https://github.com/c0fec0de\"\u003e\u003ccode\u003e@​c0fec0de\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/pull/274\"\u003ec0fec0de/anytree#274\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/kartben\"\u003e\u003ccode\u003e@​kartben\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/pull/266\"\u003ec0fec0de/anytree#266\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSpecial thanks for PRs to \u003ca href=\"https://github.com/ncopa\"\u003e\u003ccode\u003e@​ncopa\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/MitchellAugustin\"\u003e\u003ccode\u003e@​MitchellAugustin\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/CoolCat467\"\u003e\u003ccode\u003e@​CoolCat467\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/c0fec0de/anytree/compare/2.12.1...2.13.0\"\u003ehttps://github.com/c0fec0de/anytree/compare/2.12.1...2.13.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/c0fec0de/anytree/commit/2e0a1b956172654d75aff93277ce3d883355e0bf\"\u003e\u003ccode\u003e2e0a1b9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/issues/274\"\u003e#274\u003c/a\u003e from c0fec0de/remove-six\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/c0fec0de/anytree/commit/b8c1d254f058f02cfd5e4e9dcd1f736930b79e13\"\u003e\u003ccode\u003eb8c1d25\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/issues/273\"\u003e#273\u003c/a\u003e from c0fec0de/fix/ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/c0fec0de/anytree/commit/f44de1a7fa179d6263c18166597fa25f866c4681\"\u003e\u003ccode\u003ef44de1a\u003c/code\u003e\u003c/a\u003e fixes \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/issues/249\"\u003e#249\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/c0fec0de/anytree/commit/f8b89b12b25228e7b7a93d18d4a479b1fc53275b\"\u003e\u003ccode\u003ef8b89b1\u003c/code\u003e\u003c/a\u003e fix ruff issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/c0fec0de/anytree/commit/9f5c783345dfece04b4dc3498df8eb6333381622\"\u003e\u003ccode\u003e9f5c783\u003c/code\u003e\u003c/a\u003e Merge branch 'kartben-patch-1'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/c0fec0de/anytree/commit/839e307106938973111aa293b9139a14e714dbcc\"\u003e\u003ccode\u003e839e307\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/c0fec0de/anytree/commit/7204aefcc5bcd9a4d7acdcaa4adb01d4c761accc\"\u003e\u003ccode\u003e7204aef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/c0fec0de/anytree/issues/272\"\u003e#272\u003c/a\u003e from c0fec0de/270-build-broken-with-poetry-core-200\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/c0fec0de/anytree/commit/3a2b9a9da25bbcd335ddfe1050da71f2f9945aaa\"\u003e\u003ccode\u003e3a2b9a9\u003c/code\u003e\u003c/a\u003e fundamental environment renovation - NO FUNCTIONAL CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/c0fec0de/anytree/commit/06e2f532a9b21f48767337b9adab44f89e8ec9d1\"\u003e\u003ccode\u003e06e2f53\u003c/code\u003e\u003c/a\u003e switch to uv, use src layout, introduce simple make\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/c0fec0de/anytree/commit/358b68db910cf155bb8aeee2501216c05f2084b8\"\u003e\u003ccode\u003e358b68d\u003c/code\u003e\u003c/a\u003e Fix test_pickle.py not actually testing unpickled file\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/c0fec0de/anytree/compare/2.12.1...2.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `doxmlparser` from 1.13.2 to 1.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/doxygen/doxygen/releases\"\u003edoxmlparser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eDoxygen release 1.16.1\u003c/h2\u003e\n\u003cp\u003eSee the \u003ca href=\"https://www.doxygen.org/manual/changelog.html#log_1_16_1\"\u003echangelog\u003c/a\u003e for release 1.16.1\u003c/p\u003e\n\u003ch2\u003eDoxygen release 1.16.0\u003c/h2\u003e\n\u003cp\u003eSee the \u003ca href=\"https://www.doxygen.org/manual/changelog.html#log_1_16_0\"\u003echangelog\u003c/a\u003e for release 1.16.0\u003c/p\u003e\n\u003ch2\u003eDoxygen release 1.15.0\u003c/h2\u003e\n\u003cp\u003eSee the \u003ca href=\"https://www.doxygen.org/manual/changelog.html#log_1_15_0\"\u003echangelog\u003c/a\u003e for release 1.15.0\u003c/p\u003e\n\u003ch2\u003eDoxygen release 1.14.0\u003c/h2\u003e\n\u003cp\u003eSee the \u003ca href=\"https://www.doxygen.org/manual/changelog.html#log_1_14_0\"\u003echangelog\u003c/a\u003e for release 1.14.0\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/doxygen/doxygen/blob/master/doc_internal/releases.md\"\u003edoxmlparser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\\page pg_rel Overview of doxygen release dates\u003c/p\u003e\n\u003cp\u003eThe following table gives an overview of the doxygen releases together with the release dates.\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\u003eSee full diff in \u003ca href=\"https://github.com/doxygen/doxygen/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pygments` from 2.19.1 to 2.19.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pygments/pygments/releases\"\u003epygments's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.19.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLua: Fix regression introduced in 2.19.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2882\"\u003e#2882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2839\"\u003e#2839\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/pygments/pygments/blob/master/CHANGES\"\u003epygments's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.19.2\u003c/h2\u003e\n\u003cp\u003e(released June 21st, 2025)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLua: Fix regression introduced in 2.19.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2882\"\u003e#2882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2839\"\u003e#2839\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/pygments/pygments/commit/cfca62e6e95136e48a255e8cbffb0bbe1d98456c\"\u003e\u003ccode\u003ecfca62e\u003c/code\u003e\u003c/a\u003e Prepare v2.19.2 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/6688300df2ea289a6137c7ee9c78d0bb95683b5c\"\u003e\u003ccode\u003e6688300\u003c/code\u003e\u003c/a\u003e Disable pyodide (currently broken.)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/66997c3e302226a95c22cdaebf827444327920fa\"\u003e\u003ccode\u003e66997c3\u003c/code\u003e\u003c/a\u003e Update ruff version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/94dda77d69a6d6c47c33f06ce2425e7f306154a2\"\u003e\u003ccode\u003e94dda77\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/26634c856cefea620571123577d1f8cf09589ed8\"\u003e\u003ccode\u003e26634c8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2882\"\u003e#2882\u003c/a\u003e from thavelick/fix_lua_runaway_regex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/b6a51ece09e31d3db2b732c8536a533b6de74768\"\u003e\u003ccode\u003eb6a51ec\u003c/code\u003e\u003c/a\u003e fix lua regex causing runaway backtracking.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/edef94d66c2d70f05a86ac6098a69ab253b8d946\"\u003e\u003ccode\u003eedef94d\u003c/code\u003e\u003c/a\u003e Investigation for \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2839\"\u003e#2839\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/fb6a00ef872e45a23212c214b8494ebedbd4709b\"\u003e\u003ccode\u003efb6a00e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2837\"\u003e#2837\u003c/a\u003e from dlazin/sql-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/bf7aa2368fe7e0f42d4543781f0b00b4565b3995\"\u003e\u003ccode\u003ebf7aa23\u003c/code\u003e\u003c/a\u003e Clean up sql.py\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pygments/pygments/compare/2.19.1...2.19.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.3.5 to 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.3.5...9.0.2\"\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 `sphinx-autobuild` from 2024.10.3 to 2025.8.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-rtd-theme` from 3.0.2 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst\"\u003esphinx-rtd-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc2:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc1:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.0.2:\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/readthedocs/sphinx_rtd_theme/commit/795de79c8b311592f5863a25307d85924bf52164\"\u003e\u003ccode\u003e795de79\u003c/code\u003e\u003c/a\u003e Release 3.1.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1676\"\u003e#1676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/66d0fdd910e142d058c20b474338051b0751f03c\"\u003e\u003ccode\u003e66d0fdd\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to the test suite (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1668\"\u003e#1668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/fbe5e6004195a1e75654eface1884485c57eb68e\"\u003e\u003ccode\u003efbe5e60\u003c/code\u003e\u003c/a\u003e 3.1.0rc2 with support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/a76174c0bb0af755718f3cbdffbf97d19d0ac0ec\"\u003e\u003ccode\u003ea76174c\u003c/code\u003e\u003c/a\u003e Add support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1671\"\u003e#1671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/20733c3bcc60df8eda23512a0f3ccb2861486110\"\u003e\u003ccode\u003e20733c3\u003c/code\u003e\u003c/a\u003e Add support for Sphinx 9.0.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1666\"\u003e#1666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/71aacd35048c8bc2ab646ed4e3e9af1075034387\"\u003e\u003ccode\u003e71aacd3\u003c/code\u003e\u003c/a\u003e Update Code of Conduct URL (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1664\"\u003e#1664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/5a263753d52c1628c88392fbf52c729f5a8e79b5\"\u003e\u003ccode\u003e5a26375\u003c/code\u003e\u003c/a\u003e Run tests and build docs with Sphinx 8.2 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1640\"\u003e#1640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/8d4d394dad2d55cf9a4db880effac6aa5c7b12e6\"\u003e\u003ccode\u003e8d4d394\u003c/code\u003e\u003c/a\u003e Sidebar should not be floating on mobile (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1622\"\u003e#1622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/compare/3.0.2...3.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-sitemap` from 2.6.0 to 2.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jdillard/sphinx-sitemap/releases\"\u003esphinx-sitemap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.9.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e:sparkles: NEW: Add a configuration value to indent the XML output by \u003ca href=\"https://github.com/julien-lecomte\"\u003e\u003ccode\u003e@​julien-lecomte\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/pull/112\"\u003ejdillard/sphinx-sitemap#112\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/julien-lecomte\"\u003e\u003ccode\u003e@​julien-lecomte\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/pull/112\"\u003ejdillard/sphinx-sitemap#112\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jdillard/sphinx-sitemap/compare/v2.8.0...v2.9.0\"\u003ehttps://github.com/jdillard/sphinx-sitemap/compare/v2.8.0...v2.9.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.8.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e:sparkles: NEW: Add support for wildcard patterns to sitemap_excludes by \u003ca href=\"https://github.com/jdillard\"\u003e\u003ccode\u003e@​jdillard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/pull/113\"\u003ejdillard/sphinx-sitemap#113\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jdillard/sphinx-sitemap/compare/v2.7.2...v2.8.0\"\u003ehttps://github.com/jdillard/sphinx-sitemap/compare/v2.7.2...v2.8.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.7.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e:bug: FIX: Change sitemap_show_lastmod to default of  False by \u003ca href=\"https://github.com/jdillard\"\u003e\u003ccode\u003e@​jdillard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/pull/110\"\u003ejdillard/sphinx-sitemap#110\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jdillard/sphinx-sitemap/compare/v2.7.1...v2.7.2\"\u003ehttps://github.com/jdillard/sphinx-sitemap/compare/v2.7.1...v2.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.7.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e:wrench: MAINT: Remove support for Python 3.8 by \u003ca href=\"https://github.com/jdillard\"\u003e\u003ccode\u003e@​jdillard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/pull/106\"\u003ejdillard/sphinx-sitemap#106\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jdillard/sphinx-sitemap/compare/v2.7.0...v2.7.1\"\u003ehttps://github.com/jdillard/sphinx-sitemap/compare/v2.7.0...v2.7.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.7.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e:sparkles: NEW: Add support for lastmod using sphinx-last-updated-by-git by \u003ca href=\"https://github.com/jdillard\"\u003e\u003ccode\u003e@​jdillard\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/SecondSkoll\"\u003e\u003ccode\u003e@​SecondSkoll\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/pull/95\"\u003ejdillard/sphinx-sitemap#95\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/SecondSkoll\"\u003e\u003ccode\u003e@​SecondSkoll\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/pull/95\"\u003ejdillard/sphinx-sitemap#95\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jdillard/sphinx-sitemap/compare/v2.6.0...v2.7.0\"\u003ehttps://github.com/jdillard/sphinx-sitemap/compare/v2.6.0...v2.7.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/jdillard/sphinx-sitemap/blob/master/CHANGELOG.rst\"\u003esphinx-sitemap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e|:sparkles:| NEW: Add :confval:\u003ccode\u003esitemap_indent\u003c/code\u003e configuration value to control XML indentation\n\u003ccode\u003e[#112](https://github.com/jdillard/sphinx-sitemap/issues/112) \u0026lt;https://github.com/jdillard/sphinx-sitemap/pull/112\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e|:sparkles:| NEW: Add support for wildcard patterns to :confval:\u003ccode\u003esitemap_excludes\u003c/code\u003e\n\u003ccode\u003e[#113](https://github.com/jdillard/sphinx-sitemap/issues/113) \u0026lt;https://github.com/jdillard/sphinx-sitemap/pull/113\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.2\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eRelease date: 2025-06-26\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e|:bug:| FIX: Change :confval:\u003ccode\u003esitemap_show_lastmod\u003c/code\u003e to default of \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eRelease date: 2025-06-20\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eRelease date: 2025-06-20\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e|:sparkles:| NEW: Add support for \u003ccode\u003elastmod\u003c/code\u003e using \u003ccode\u003esphinx-last-updated-by-git\u003c/code\u003e_\n\u003ccode\u003e[#95](https://github.com/jdillard/sphinx-sitemap/issues/95) \u0026lt;https://github.com/jdillard/sphinx-sitemap/pull/95\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/jdillard/sphinx-sitemap/commit/70fe479496d429542675b0f3981ccb2cd0178985\"\u003e\u003ccode\u003e70fe479\u003c/code\u003e\u003c/a\u003e Add a configuration value to indent the output (aka prettify output) (\u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/issues/112\"\u003e#112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdillard/sphinx-sitemap/commit/96d0936c344e2adc23756b4613a66571d53067f3\"\u003e\u003ccode\u003e96d0936\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the all-github-actions group (\u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/issues/116\"\u003e#116\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdillard/sphinx-sitemap/commit/2891693f77ca78f5be4c67dbb6bed37012cce14a\"\u003e\u003ccode\u003e2891693\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/issues/115\"\u003e#115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdillard/sphinx-sitemap/commit/03881d663c20756d71304719d921f4b311c92b51\"\u003e\u003ccode\u003e03881d6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the all-github-actions group (\u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdillard/sphinx-sitemap/commit/822c8c12487ac23ffd44e998f5e74d1f566608b1\"\u003e\u003ccode\u003e822c8c1\u003c/code\u003e\u003c/a\u003e :sparkles: NEW: Add support for wildcard patterns to sitemap_excludes (\u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/issues/113\"\u003e#113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdillard/sphinx-sitemap/commit/3fcffe6413ba1431c0f4059631a85f13c1cf27f8\"\u003e\u003ccode\u003e3fcffe6\u003c/code\u003e\u003c/a\u003e clean up docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdillard/sphinx-sitemap/commit/2e22578a4fcad2a252a636dea178979c7bc82b62\"\u003e\u003ccode\u003e2e22578\u003c/code\u003e\u003c/a\u003e Add highlights section to docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdillard/sphinx-sitemap/commit/23ca34c38f83c678559c5cebb1bf93f6f8279043\"\u003e\u003ccode\u003e23ca34c\u003c/code\u003e\u003c/a\u003e Add demo to index.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdillard/sphinx-sitemap/commit/fd065b643805435e772d1d7c38e8763b3d1dbd0d\"\u003e\u003ccode\u003efd065b6\u003c/code\u003e\u003c/a\u003e Improve lastmod docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdillard/sphinx-sitemap/commit/118a17c1e7788de1f58ef93af7074e74acd89ad0\"\u003e\u003ccode\u003e118a17c\u003c/code\u003e\u003c/a\u003e :bug: FIX: Change sitemap_show_lastmod to default of  False (\u003ca href=\"https://redirect.github.com/jdillard/sphinx-sitemap/issues/110\"\u003e#110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jdillard/sphinx-sitemap/compare/v2.6.0...v2.9.0\"\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\nUpdates `sphinxcontrib-svg2pdfconverter` from 1.3.0 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/missinglinkelectronics/sphinxcontrib-svg2pdfconverter/commits\"\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/suja8742/Zephyr-RTOS-Application-examples/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/suja8742%2FZephyr-RTOS-Application-examples/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"}},{"old_version":"2024.10.3","new_version":"2025.8.25","update_type":"major","path":null,"pr_created_at":"2026-01-16T03:16:59.000Z","version_change":"2024.10.3 → 2025.8.25","issue":{"uuid":"3820109422","node_id":"PR_kwDOPn-p3M69hLXf","number":4,"state":"open","title":"Bump sphinx-autobuild from 2024.10.3 to 2025.8.25","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-16T03:16:59.000Z","updated_at":"2026-01-16T03:17:29.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) from 2024.10.3 to 2025.8.25.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\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=sphinx-autobuild\u0026package-manager=pip\u0026previous-version=2024.10.3\u0026new-version=2025.8.25)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/edwardtheharris/helm-jenkins/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/edwardtheharris%2Fhelm-jenkins/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"}},{"old_version":"2024.9.19","new_version":"2025.8.25","update_type":"major","path":null,"pr_created_at":"2026-01-13T03:42:16.000Z","version_change":"2024.9.19 → 2025.8.25","issue":{"uuid":"3806938162","node_id":"PR_kwDOO17VGM681Qfy","number":103,"state":"closed","title":"build(deps): Bump the doc-updates group across 1 directory with 4 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-20T00:01:51.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-13T03:42:16.000Z","updated_at":"2026-01-20T00:01:52.000Z","time_to_close":591575,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","group_name":"doc-updates","update_count":4,"packages":[{"name":"sphinx","old_version":"8.2.3","new_version":"9.1.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-autobuild","old_version":"2024.9.19","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-autodoc-typehints","old_version":"2.4.4","new_version":"3.6.2","repository_url":"https://github.com/tox-dev/sphinx-autodoc-typehints"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"}],"path":null,"ecosystem":"pip"},"body":"Bumps the doc-updates group with 4 updates in the /docs directory: [sphinx](https://github.com/sphinx-doc/sphinx), [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild), [sphinx-autodoc-typehints](https://github.com/tox-dev/sphinx-autodoc-typehints) and [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme).\n\nUpdates `sphinx` from 8.2.3 to 9.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx/releases\"\u003esphinx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSphinx 9.1.0\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14153\"\u003e#14153\u003c/a\u003e: Drop Python 3.11 support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/12555\"\u003e#12555\u003c/a\u003e: Drop Docutils 0.20 support.\nPatch by Adam Turner\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eadd_static_dir()\u003c/code\u003e for copying static\nassets from extensions to the build output.\nPatch by Jared Dillard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14189\"\u003e#14189\u003c/a\u003e: autodoc: Fix duplicate \u003ccode\u003e:no-index-entry:\u003c/code\u003e for modules.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13713\"\u003e#13713\u003c/a\u003e: Fix compatibility with MyST-Parser.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eFix tests for Python 3.15.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Fix default option parsing.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eRemove incorrect static typing assertions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14050\"\u003e#14050\u003c/a\u003e: LaTeXTranslator fails to build documents using the \u0026quot;acronym\u0026quot;\nstandard role.\nPatch by Günter Milde\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix rendering for grid filled merged vertical cell.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14228\"\u003e#14228\u003c/a\u003e: LaTeX: Fix overrun footer for cases of merged vertical table cells.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14207\"\u003e#14207\u003c/a\u003e: Fix creating \u003ccode\u003eHTMLThemeFactory\u003c/code\u003e objects in third-party extensions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/3099\"\u003e#3099\u003c/a\u003e: LaTeX: PDF build crashes if a code-block contains more than\ncirca 1350 codelines (about 27 a4-sized pages at default pointsize).\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14064\"\u003e#14064\u003c/a\u003e: LaTeX: TABs ending up in sphinxVerbatim fail to obey tab stops.\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Improve support for non-weakreferencable objects.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix accidental removal at \u003ccode\u003e3.5.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/8854\"\u003e#8854\u003c/a\u003e) of the documentation of\n\u003ccode\u003eliteralblockcappos\u003c/code\u003e key of  sphinxsetup.\nPatch by Jean-François B.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/sphinx-doc/sphinx/blob/master/CHANGES.rst\"\u003esphinx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 9.1.0 (released Dec 31, 2025)\u003c/h1\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14153\"\u003e#14153\u003c/a\u003e: Drop Python 3.11 support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/12555\"\u003e#12555\u003c/a\u003e: Drop Docutils 0.20 support.\nPatch by Adam Turner\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :meth:\u003ccode\u003e~sphinx.application.Sphinx.add_static_dir\u003c/code\u003e for copying static\nassets from extensions to the build output.\nPatch by Jared Dillard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14189\"\u003e#14189\u003c/a\u003e: autodoc: Fix duplicate \u003ccode\u003e:no-index-entry:\u003c/code\u003e for modules.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13713\"\u003e#13713\u003c/a\u003e: Fix compatibility with MyST-Parser.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eFix tests for Python 3.15.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Fix default option parsing.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eRemove incorrect static typing assertions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14050\"\u003e#14050\u003c/a\u003e: LaTeXTranslator fails to build documents using the \u0026quot;acronym\u0026quot;\nstandard role.\nPatch by Günter Milde\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix rendering for grid filled merged vertical cell.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14228\"\u003e#14228\u003c/a\u003e: LaTeX: Fix overrun footer for cases of merged vertical table cells.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14207\"\u003e#14207\u003c/a\u003e: Fix creating \u003ccode\u003eHTMLThemeFactory\u003c/code\u003e objects in third-party extensions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/3099\"\u003e#3099\u003c/a\u003e: LaTeX: PDF build crashes if a code-block contains more than\ncirca 1350 codelines (about 27 a4-sized pages at default pointsize).\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14064\"\u003e#14064\u003c/a\u003e: LaTeX: TABs ending up in sphinxVerbatim fail to obey tab stops.\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Improve support for non-weakreferencable objects.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix accidental removal at \u003ccode\u003e3.5.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/8854\"\u003e#8854\u003c/a\u003e) of the documentation of\n\u003ccode\u003eliteralblockcappos\u003c/code\u003e key of  :ref:\u003ccode\u003e'sphinxsetup' \u0026lt;latexsphinxsetup\u0026gt;\u003c/code\u003e.\nPatch by Jean-François B.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/cc7c6f435ad37bb12264f8118c8461b230e6830c\"\u003e\u003ccode\u003ecc7c6f4\u003c/code\u003e\u003c/a\u003e Bump to 9.1.0 final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/b127b9478aa4654a82eeadf1a1e89715d3927608\"\u003e\u003ccode\u003eb127b94\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eapp.add_static_dir()\u003c/code\u003e for copying extension static files (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14219\"\u003e#14219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/20f1c46790d370b50fa7396cca3e1cc658ce9f89\"\u003e\u003ccode\u003e20f1c46\u003c/code\u003e\u003c/a\u003e LaTeX: Inhibit breaks for rows with merged vertical cells (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14227\"\u003e#14227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/3c85411fd06a1c3026f7991818312e5358ef52e5\"\u003e\u003ccode\u003e3c85411\u003c/code\u003e\u003c/a\u003e Polish CHANGES.rst (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14225\"\u003e#14225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/9ee5446c6cfb997a6b92f5cfb84d045ec947417a\"\u003e\u003ccode\u003e9ee5446\u003c/code\u003e\u003c/a\u003e LaTeX: restore 1.7 documentation of literalblockcappos (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14224\"\u003e#14224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/d75d602005be7567abc7741ee777f6f8c302d827\"\u003e\u003ccode\u003ed75d602\u003c/code\u003e\u003c/a\u003e LaTeX: improve (again...) some code comments in time for 9.1.0 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14222\"\u003e#14222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/8dca61d69a4a05c56702980e4f6cbe6451dd9ebc\"\u003e\u003ccode\u003e8dca61d\u003c/code\u003e\u003c/a\u003e Improve some LaTeX code comments (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14220\"\u003e#14220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/8ab960098a8e12b8893bd3ceafc394759118346b\"\u003e\u003ccode\u003e8ab9600\u003c/code\u003e\u003c/a\u003e Bump to 9.1.0 candidate 2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/d59b2375945ed04414a11b0adb3e5655525f3e9e\"\u003e\u003ccode\u003ed59b237\u003c/code\u003e\u003c/a\u003e autodoc: Improve support for non-weakreferencable objects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/964424b3dbc92ed1718272fd45123878f3eec14d\"\u003e\u003ccode\u003e964424b\u003c/code\u003e\u003c/a\u003e Use the correct reference for using existing extensions (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14157\"\u003e#14157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx/compare/v8.2.3...v9.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autobuild` from 2024.9.19 to 2025.8.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\u003c/p\u003e\n\u003ch2\u003eRelease 2024.10.03\u003c/h2\u003e\n\u003cp\u003e2024.10.03\u003c/p\u003e\n\u003ch2\u003eRelease 2024.10.02\u003c/h2\u003e\n\u003cp\u003e2024.10.02\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/86e2f373802417c944fda6c2930c8c3c98c20218\"\u003e\u003ccode\u003e86e2f37\u003c/code\u003e\u003c/a\u003e Release 2024.10.03\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.09.19...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autodoc-typehints` from 2.4.4 to 3.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/releases\"\u003esphinx-autodoc-typehints's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.6.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility with 9.1.0 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/595\"\u003etox-dev/sphinx-autodoc-typehints#595\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/sphinx-autodoc-typehints/compare/3.6.1...3.6.2\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.6.1...3.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.6.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude metadata in type hints by \u003ca href=\"https://github.com/AllanChain\"\u003e\u003ccode\u003e@​AllanChain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/594\"\u003etox-dev/sphinx-autodoc-typehints#594\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/AllanChain\"\u003e\u003ccode\u003e@​AllanChain\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/594\"\u003etox-dev/sphinx-autodoc-typehints#594\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/sphinx-autodoc-typehints/compare/3.6.0...3.6.1\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.6.0...3.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse Sphinx 9 class interface by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/589\"\u003etox-dev/sphinx-autodoc-typehints#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/tox-dev/sphinx-autodoc-typehints/compare/3.5.2...3.6.0\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.5.2...3.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.5.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve type information from docstrings if no type annotation is present and parameter has default value. by \u003ca href=\"https://github.com/christianaguilera-foundry\"\u003e\u003ccode\u003e@​christianaguilera-foundry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/576\"\u003etox-dev/sphinx-autodoc-typehints#576\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/christianaguilera-foundry\"\u003e\u003ccode\u003e@​christianaguilera-foundry\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/576\"\u003etox-dev/sphinx-autodoc-typehints#576\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/sphinx-autodoc-typehints/compare/3.5.1...3.5.2\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.5.1...3.5.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.5.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeclare 3.14 support by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/pull/571\"\u003etox-dev/sphinx-autodoc-typehints#571\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/sphinx-autodoc-typehints/compare/3.5.0...3.5.1\"\u003ehttps://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.5.0...3.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/c9ee0e399767a83909ac00a0f912d1031b6ab260\"\u003e\u003ccode\u003ec9ee0e3\u003c/code\u003e\u003c/a\u003e Fix compatibility with 9.1.0 (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/595\"\u003e#595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/65ad3c43111a5eea6bbaec6803c9a1bcf78cdb6c\"\u003e\u003ccode\u003e65ad3c4\u003c/code\u003e\u003c/a\u003e Include metadata in type hints (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/594\"\u003e#594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/3501b47ca738726f704f41e795caeaa5ff8123a9\"\u003e\u003ccode\u003e3501b47\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/593\"\u003e#593\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/136044f097480713d11083ad0a09d0c3f59b42aa\"\u003e\u003ccode\u003e136044f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/9e7037ff0c9b26215bccd5434c46e42e7b56ed94\"\u003e\u003ccode\u003e9e7037f\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/1289a796eae8e0fcf572071444f06841db352653\"\u003e\u003ccode\u003e1289a79\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/590\"\u003e#590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/7abd95a25ac65bfabab68e1fcb71beb7b5d9f832\"\u003e\u003ccode\u003e7abd95a\u003c/code\u003e\u003c/a\u003e Use Sphinx 9 class interface (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/52114b2408a605fa53877a926b471cf317954c65\"\u003e\u003ccode\u003e52114b2\u003c/code\u003e\u003c/a\u003e Support Sphinx 9+ (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/78f49cd27cfb0954f20f275b90ade63e495bc370\"\u003e\u003ccode\u003e78f49cd\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/585\"\u003e#585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/commit/00a035bdab3395becf1c6faf13c7a55a83243b81\"\u003e\u003ccode\u003e00a035b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/sphinx-autodoc-typehints/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/sphinx-autodoc-typehints/compare/2.4.4...3.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-rtd-theme` from 3.0.2 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst\"\u003esphinx-rtd-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc2:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc1:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.0.2:\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/readthedocs/sphinx_rtd_theme/commit/795de79c8b311592f5863a25307d85924bf52164\"\u003e\u003ccode\u003e795de79\u003c/code\u003e\u003c/a\u003e Release 3.1.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1676\"\u003e#1676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/66d0fdd910e142d058c20b474338051b0751f03c\"\u003e\u003ccode\u003e66d0fdd\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to the test suite (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1668\"\u003e#1668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/fbe5e6004195a1e75654eface1884485c57eb68e\"\u003e\u003ccode\u003efbe5e60\u003c/code\u003e\u003c/a\u003e 3.1.0rc2 with support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/a76174c0bb0af755718f3cbdffbf97d19d0ac0ec\"\u003e\u003ccode\u003ea76174c\u003c/code\u003e\u003c/a\u003e Add support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1671\"\u003e#1671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/20733c3bcc60df8eda23512a0f3ccb2861486110\"\u003e\u003ccode\u003e20733c3\u003c/code\u003e\u003c/a\u003e Add support for Sphinx 9.0.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1666\"\u003e#1666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/71aacd35048c8bc2ab646ed4e3e9af1075034387\"\u003e\u003ccode\u003e71aacd3\u003c/code\u003e\u003c/a\u003e Update Code of Conduct URL (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1664\"\u003e#1664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/5a263753d52c1628c88392fbf52c729f5a8e79b5\"\u003e\u003ccode\u003e5a26375\u003c/code\u003e\u003c/a\u003e Run tests and build docs with Sphinx 8.2 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1640\"\u003e#1640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/8d4d394dad2d55cf9a4db880effac6aa5c7b12e6\"\u003e\u003ccode\u003e8d4d394\u003c/code\u003e\u003c/a\u003e Sidebar should not be floating on mobile (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1622\"\u003e#1622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/compare/3.0.2...3.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/mkb79/Audible-uv-test/pull/103","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkb79%2FAudible-uv-test/issues/103","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/103/packages"}},{"old_version":"2024.10.3","new_version":"2025.8.25","update_type":"major","path":null,"pr_created_at":"2026-01-12T17:34:53.000Z","version_change":"2024.10.3 → 2025.8.25","issue":{"uuid":"3805301023","node_id":"PR_kwDODe0Bqc68wGAX","number":366,"state":"closed","title":"Bump the dependencies group across 1 directory with 15 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-26T15:22:07.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-12T17:34:53.000Z","updated_at":"2026-01-26T15:22:08.000Z","time_to_close":1201634,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":15,"packages":[{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"anyio","old_version":"4.10.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2025.8.3","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"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.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"roman-numerals-py","old_version":"3.1.0","new_version":"4.1.0","repository_url":"https://github.com/AA-Turner/roman-numerals"},{"name":"starlette","old_version":"0.49.1","new_version":"0.51.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.6.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 15 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `3.0.2` | `3.1.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.12.1` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `2026.1.4` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.3` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [roman-numerals-py](https://github.com/AA-Turner/roman-numerals) | `3.1.0` | `4.1.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.1` | `0.51.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.0` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.40.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n\n\nUpdates `sphinx-autobuild` from 2024.10.3 to 2025.8.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-rtd-theme` from 3.0.2 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst\"\u003esphinx-rtd-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc2:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc1:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.0.2:\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/readthedocs/sphinx_rtd_theme/commit/795de79c8b311592f5863a25307d85924bf52164\"\u003e\u003ccode\u003e795de79\u003c/code\u003e\u003c/a\u003e Release 3.1.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1676\"\u003e#1676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/66d0fdd910e142d058c20b474338051b0751f03c\"\u003e\u003ccode\u003e66d0fdd\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to the test suite (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1668\"\u003e#1668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/fbe5e6004195a1e75654eface1884485c57eb68e\"\u003e\u003ccode\u003efbe5e60\u003c/code\u003e\u003c/a\u003e 3.1.0rc2 with support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/a76174c0bb0af755718f3cbdffbf97d19d0ac0ec\"\u003e\u003ccode\u003ea76174c\u003c/code\u003e\u003c/a\u003e Add support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1671\"\u003e#1671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/20733c3bcc60df8eda23512a0f3ccb2861486110\"\u003e\u003ccode\u003e20733c3\u003c/code\u003e\u003c/a\u003e Add support for Sphinx 9.0.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1666\"\u003e#1666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/71aacd35048c8bc2ab646ed4e3e9af1075034387\"\u003e\u003ccode\u003e71aacd3\u003c/code\u003e\u003c/a\u003e Update Code of Conduct URL (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1664\"\u003e#1664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/5a263753d52c1628c88392fbf52c729f5a8e79b5\"\u003e\u003ccode\u003e5a26375\u003c/code\u003e\u003c/a\u003e Run tests and build docs with Sphinx 8.2 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1640\"\u003e#1640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/8d4d394dad2d55cf9a4db880effac6aa5c7b12e6\"\u003e\u003ccode\u003e8d4d394\u003c/code\u003e\u003c/a\u003e Sidebar should not be floating on mobile (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1622\"\u003e#1622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/compare/3.0.2...3.1.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.10.0 to 4.12.1\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.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged all functions currently raising the private \u003ccode\u003eNoCurrentAsyncBackend\u003c/code\u003e exception (since v4.12.0) to instead raise the public \u003ccode\u003eNoEventLoopError\u003c/code\u003e exception (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with instance methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1042\"\u003e#1042\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003eCancelScope.cancel()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by passing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to \u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e keyword argument (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically handle all async tests (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/857\"\u003e#857\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously raised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise \u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but \u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this scenario. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\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/a0dccbd78d75886247ae7846b460fd390cc94fbd\"\u003e\u003ccode\u003ea0dccbd\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e1121a735c977c00c18b3a581d28daf83a279833\"\u003e\u003ccode\u003ee1121a7\u003c/code\u003e\u003c/a\u003e Enabled tests for the 4.12.x branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/69ab43e549517ce554f84365fed9da90e806c303\"\u003e\u003ccode\u003e69ab43e\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4f4b33ed56edd1bc4785a368a103ad8138730d91\"\u003e\u003ccode\u003e4f4b33e\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eBlockingPortal.__new__\u003c/code\u003e hack (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/af17d89b80ebbd526215e2dbd025b284730aaa3f\"\u003e\u003ccode\u003eaf17d89\u003c/code\u003e\u003c/a\u003e Replaced the NoCurrentAsyncBackend exception with NoEventLoopError (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1049\"\u003e#1049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4310264312a2e86e792481bdb05bdb381678a6b5\"\u003e\u003ccode\u003e4310264\u003c/code\u003e\u003c/a\u003e Updated pre-commit modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0cc6723ba5a2fdaa98a24852d3681c4ed99b8863\"\u003e\u003ccode\u003e0cc6723\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1051\"\u003e#1051\u003c/a\u003e)\u003c/li\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.10.0...4.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.8.3 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.08.03...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.3 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\u003c/blockquote\u003e\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\u003c/blockquote\u003e\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.3...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.2.1 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/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.10 to 3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `roman-numerals-py` from 3.1.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AA-Turner/roman-numerals/releases\"\u003eroman-numerals-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.1.0\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.0.0\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/AA-Turner/roman-numerals/blob/master/CHANGES.rst\"\u003eroman-numerals-py's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.1.0 (released 17 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003eAdd some debug assertions for unsafe blocks\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.0.0 (released 16 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRename Python package to \u003ccode\u003eroman-numerals\u003c/code\u003e on PyPI.\u003c/li\u003e\n\u003cli\u003ePublish \u003ccode\u003eroman-numerals-py\u003c/code\u003e as a meta-package that depends\non \u003ccode\u003eroman-numerals\u003c/code\u003e and installs no modules.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eIncrease the minimum supported Rust version (MSRV) to 1.81.0.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::error::Error\u003c/code\u003e trait for all error types.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::fmt\u003c/code\u003e traits in \u003ccode\u003eno-std\u003c/code\u003e mode.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eFrom\u0026lt;RomanNumeral\u0026gt;\u003c/code\u003e for most integer types.\u003c/li\u003e\n\u003cli\u003ePublish the \u003ccode\u003eroman-numerals-rs\u003c/code\u003e crate using \u003ccode\u003eTrusted Publishing \u0026lt;https://crates.io/docs/trusted-publishing\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/AA-Turner/roman-numerals/commit/53c9c4eac63b91728fba3c26329163ee57654d21\"\u003e\u003ccode\u003e53c9c4e\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a3793b83fab7064107ac56a482a6fa93bc9c5048\"\u003e\u003ccode\u003ea3793b8\u003c/code\u003e\u003c/a\u003e Add more SAFETY notes and debug assertions to unsafe blocks (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/106\"\u003e#106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/46d346e2d08b634856c79783e404616b65626ba7\"\u003e\u003ccode\u003e46d346e\u003c/code\u003e\u003c/a\u003e Adjust annotations in light of PEP 649\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/b8fae405d948415f7397ae4f64569c53cb623105\"\u003e\u003ccode\u003eb8fae40\u003c/code\u003e\u003c/a\u003e Adjust an example in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a88464130711ad5e8d56e6ff747d17068ae17534\"\u003e\u003ccode\u003ea884641\u003c/code\u003e\u003c/a\u003e Restore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c3e1b6b4e6e02e5e19c26dc6f72bbb7b1060cca5\"\u003e\u003ccode\u003ec3e1b6b\u003c/code\u003e\u003c/a\u003e Release v4.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c335cb63ed97e684a4e9453639bfc7e9f487bb41\"\u003e\u003ccode\u003ec335cb6\u003c/code\u003e\u003c/a\u003e Add publishing step for the \u003ccode\u003eroman-numerals-py\u003c/code\u003e meta-package (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/105\"\u003e#105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/649f6e62e7bd24123d7dd489609ae47168aaeb1b\"\u003e\u003ccode\u003e649f6e6\u003c/code\u003e\u003c/a\u003e Add Trusted Publishing workflow for crates.io (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/104\"\u003e#104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/ffa4dd1b33eae62f1bd1d44549e10a528b8f1f58\"\u003e\u003ccode\u003effa4dd1\u003c/code\u003e\u003c/a\u003e rust: Refactor tests (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/26b41561c1d9813104548777b5ed9622d7125b38\"\u003e\u003ccode\u003e26b4156\u003c/code\u003e\u003c/a\u003e Simplify ASCII detection closures (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AA-Turner/roman-numerals/compare/v3.1.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.49.1 to 0.51.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.51.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease warning stacklevel on \u003ccode\u003eDeprecationWarning\u003c/code\u003e for wsgi module \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3082\"\u003e#3082\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/santibreo\"\u003e\u003ccode\u003e@​santibreo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3082\"\u003eKludex/starlette#3082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/iddqd888\"\u003e\u003ccode\u003e@​iddqd888\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3083\"\u003eKludex/starlette#3083\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.50.0...0.51.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.50.0...0.51.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.50.0\u003c/h2\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.3...0.50.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.3...0.50.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.3\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3059\"\u003e#3059\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.2...0.49.3\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.2...0.49.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.2\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore \u003ccode\u003eif-modified-since\u003c/code\u003e header if \u003ccode\u003eif-none-match\u003c/code\u003e is present in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3044\"\u003e#3044\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.49.2\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.1...0.49.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.51.0 (January 10, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease warning stacklevel on \u003ccode\u003eDeprecationWarning\u003c/code\u003e for wsgi module \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3082\"\u003e#3082\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.50.0 (November 1, 2025)\u003c/h2\u003e\n\u003ch4\u003eRemoved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.3 (November 1, 2025)\u003c/h2\u003e\n\u003cp\u003eThis is the last release that supports Python 3.9, which will be dropped in the next minor release.\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRelax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3059\"\u003e#3059\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.2 (November 1, 2025)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore \u003ccode\u003eif-modified-since\u003c/code\u003e header if \u003ccode\u003eif-none-match\u003c/code\u003e is present in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3044\"\u003e#3044\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/df2ee22bc072dc19962120a7559f8fc0de7a094e\"\u003e\u003ccode\u003edf2ee22\u003c/code\u003e\u003c/a\u003e Version 0.51.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3097\"\u003e#3097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/66110293b822e997c8c2aa576b36d34a9507dd67\"\u003e\u003ccode\u003e6611029\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 4 updates (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3092\"\u003e#3092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3f75ee971cb81a8041183f442f6e1bb4e34518b3\"\u003e\u003ccode\u003e3f75ee9\u003c/code\u003e\u003c/a\u003e Update third-party-packages.md (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/081535ad9b46a29ca4d9beea9dea9d422b4c8f7d\"\u003e\u003ccode\u003e081535a\u003c/code\u003e\u003c/a\u003e chore: Increase warning stacklevel (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3082\"\u003e#3082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/8bb71d9d51126a2177f6dd2f9c636d88e5beb410\"\u003e\u003ccode\u003e8bb71d9\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3075\"\u003e#3075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/49d4de92867cb38a781069701ad57cecab4a1a36\"\u003e\u003ccode\u003e49d4de9\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3065\"\u003e#3065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4941b4a04993d087dea66e9287fe9472babee879\"\u003e\u003ccode\u003e4941b4a\u003c/code\u003e\u003c/a\u003e Version 0.50.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a0499f60a6f13b8b42381d70bafc076b6ece4eee\"\u003e\u003ccode\u003ea0499f6\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3061\"\u003e#3061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/de3ffecaeadd34612f71495374f5853edbda1bf2\"\u003e\u003ccode\u003ede3ffec\u003c/code\u003e\u003c/a\u003e Version 0.49.3 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3062\"\u003e#3062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/c4433960ccc07289e0963df94dc5c2746f07ca1a\"\u003e\u003ccode\u003ec443396\u003c/code\u003e\u003c/a\u003e Relax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3059\"\u003e#3059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.51.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typing-extensions` from 4.14.1 to 4.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/releases\"\u003etyping-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003cp\u003eNew features since 4.14.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.15.0rc1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/blob/main/CHANGELOG.md\"\u003etyping-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.15.0 (August 25, 2025)\u003c/h1\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003ch1\u003eRelease 4.15.0rc1 (August 18, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/9d1637e264b5c1a6b7acee3e907015f89b20c2c9\"\u003e\u003ccode\u003e9d1637e\u003c/code\u003e\u003c/a\u003e Prepare release 4.15.0 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/4bd67c5be5d9443c7d33c314d02a56ee125eb88d\"\u003e\u003ccode\u003e4bd67c5\u003c/code\u003e\u003c/a\u003e Coverage: exclude some noise (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/656\"\u003e#656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e589a26da73b075c5276bae40b86db1af0144f84\"\u003e\u003ccode\u003ee589a26\u003c/code\u003e\u003c/a\u003e Coverage: add detailed report to job summary (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/67d37fed1298e050f74d5acc95b2621bd37837ad\"\u003e\u003ccode\u003e67d37fe\u003c/code\u003e\u003c/a\u003e Coverage: Implement fail_under (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/654\"\u003e#654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e9ae26f5286edee9262727755ecb9ad16e999192\"\u003e\u003ccode\u003ee9ae26f\u003c/code\u003e\u003c/a\u003e Don't delete previous coverage comment (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/653\"\u003e#653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/ac80bb728a3006fc88ef7373b92f0c25cfcc7895\"\u003e\u003ccode\u003eac80bb7\u003c/code\u003e\u003c/a\u003e Add Coverage workflow (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/623\"\u003e#623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/abaaafd98c1cc7e5baf098ec287a3d22cb339670\"\u003e\u003ccode\u003eabaaafd\u003c/code\u003e\u003c/a\u003e Prepare release 4.15.0rc1 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/650\"\u003e#650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/98104053ea8d49bcdd247804e5fa9f73136acbd4\"\u003e\u003ccode\u003e9810405\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e@disjoint_base\u003c/code\u003e (PEP 800) (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/634\"\u003e#634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/7ee9e05fd484d06899ce56e80f5e1aa4c760fc03\"\u003e\u003ccode\u003e7ee9e05\u003c/code\u003e\u003c/a\u003e Backport type_params fix from CPython (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/646\"\u003e#646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/1e8eb9c06ef51b3a1e1f05303a16feca13f5ed98\"\u003e\u003ccode\u003e1e8eb9c\u003c/code\u003e\u003c/a\u003e Do not refer to PEP 705 as being experimental (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/typing_extensions/compare/4.14.1...4.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.6.0 to 2.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by \u003ca href=\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-38jv-5279-wg99)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by default. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003eurllib3/urllib3#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003eurllib3/urllib3#3752\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.3 (2026-01-07)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a high-severity security issue where decompression-bomb safeguards of\nthe streaming API were bypassed when HTTP redirects were followed.\n(\u003ccode\u003eGHSA-38jv-5279-wg99 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by\ndefault. (\u003ccode\u003e[#3743](https://github.com/urllib3/urllib3/issues/3743) \u0026lt;https://github.com/urllib3/urllib3/issues/3743\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten.\n(\u003ccode\u003e[#3752](https://github.com/urllib3/urllib3/issues/3752) \u0026lt;https://github.com/urllib3/urllib3/issues/3752\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.2 (2025-12-11)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in\nthe decoder's buffer when reading compressed chunked responses.\n(\u003ccode\u003e[#3734](https://github.com/urllib3/urllib3/issues/3734) \u0026lt;https://github.com/urllib3/urllib3/issues/3734\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.1 (2025-12-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods.\n(\u003ccode\u003e[#3731](https://github.com/urllib3/urllib3/issues/3731) \u0026lt;https://github.com/urllib3/urllib3/issues/3731\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/0248277dd7ac0239204889ca991353ad3e3a1ddc\"\u003e\u003ccode\u003e0248277\u003c/code\u003e\u003c/a\u003e Release 2.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8864ac407bba8607950025e0979c4c69bc7abc7b\"\u003e\u003ccode\u003e8864ac4\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/70cecb27ca99d56aaaeb63ac27ee270ef2b24c5c\"\u003e\u003ccode\u003e70cecb2\u003c/code\u003e\u003c/a\u003e Fix Scorecard issues related to vulnerable dev dependencies (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3755\"\u003e#3755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/41f249abe1ef3e20768588969c4035aba060a359\"\u003e\u003ccode\u003e41f249a\u003c/code\u003e\u003c/a\u003e Move \u0026quot;v2.0 Migration Guide\u0026quot; to the end of the table of contents (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3747\"\u003e#3747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/fd4dffd2fc544166b76151a2fa3d7b7c0eab540c\"\u003e\u003ccode\u003efd4dffd\u003c/code\u003e\u003c/a\u003e Patch \u003ccode\u003eVerifiedHTTPSConnection\u003c/code\u003e for Emscripten (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/13f0bfd55e4468fe1ea9c6f809d3a87b0f93ebab\"\u003e\u003ccode\u003e13f0bfd\u003c/code\u003e\u003c/a\u003e Handle massive values in Retry-After when calculating time to sleep for (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003e#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8c480bf87bcefd321b3a1ae47f04e908b6b2ed7b\"\u003e\u003ccode\u003e8c480bf\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3748\"\u003e#3748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/4b40616e959c0a2c466e8075f2a785a9f99bb0c1\"\u003e\u003ccode\u003e4b40616\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.3.0 to 5.0.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3750\"\u003e#3750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/82b8479663d037d220c883f1584dd01a43bb273b\"\u003e\u003ccode\u003e82b8479\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3749\"\u003e#3749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/34284cb01700bb7d4fdd472f909e22393e9174e2\"\u003e\u003ccode\u003e34284cb\u003c/code\u003e\u003c/a\u003e Mention experimental features in the security policy (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.6.0...2.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.35.0 to 0...\n\n_Description has been truncated_","html_url":"https://github.com/freedomofpress/securedrop-workstation-docs/pull/366","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/freedomofpress%2Fsecuredrop-workstation-docs/issues/366","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/366/packages"}},{"old_version":"2024.10.3","new_version":"2025.8.25","update_type":"major","path":null,"pr_created_at":"2026-01-12T04:41:08.000Z","version_change":"2024.10.3 → 2025.8.25","issue":{"uuid":"3802743037","node_id":"PR_kwDOMftbFc68njza","number":188,"state":"closed","title":"Bump the py-updates 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-01-19T04:50:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-12T04:41:08.000Z","updated_at":"2026-01-19T04:50:44.000Z","time_to_close":605375,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"py-updates","update_count":79,"packages":[{"name":"awscli","old_version":"1.40.17","new_version":"1.44.15","repository_url":"https://github.com/aws/aws-cli"},{"name":"polars","old_version":"1.28.1","new_version":"1.37.0","repository_url":"https://github.com/pola-rs/polars"},{"name":"requests","old_version":"2.32.3","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"biopython","old_version":"1.85","new_version":"1.86","repository_url":"https://github.com/biopython/biopython"},{"name":"boto3","old_version":"1.38.18","new_version":"1.42.25","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.38.18","new_version":"1.42.25","repository_url":"https://github.com/boto/botocore"},{"name":"certifi","old_version":"2025.4.26","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"cloudpathlib","old_version":"0.21.1","new_version":"0.23.0","repository_url":"https://github.com/drivendataorg/cloudpathlib"},{"name":"docutils","old_version":"0.19","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"jellyfish","old_version":"1.2.0","new_version":"1.2.1"},{"name":"markdown-it-py","old_version":"3.0.0","new_version":"4.0.0","repository_url":"https://github.com/executablebooks/markdown-it-py"},{"name":"numpy","old_version":"2.2.5","new_version":"2.4.1","repository_url":"https://github.com/numpy/numpy"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pyarrow","old_version":"20.0.0","new_version":"22.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"rich","old_version":"14.0.0","new_version":"14.2.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rsa","old_version":"4.7.2","new_version":"4.9.1","repository_url":"https://github.com/sybrenstuvel/python-rsa"},{"name":"s3transfer","old_version":"0.12.0","new_version":"0.16.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"structlog","old_version":"25.3.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"tzdata","old_version":"2025.2","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"},{"name":"boto3-stubs","old_version":"1.38.18","new_version":"1.42.25","repository_url":"https://github.com/youtype/mypy_boto3_builder"},{"name":"botocore-stubs","old_version":"1.38.18","new_version":"1.42.25","repository_url":"https://github.com/youtype/botocore-stubs"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"coverage","old_version":"7.8.0","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cryptography","old_version":"44.0.3","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"freezegun","old_version":"1.5.1","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"iniconfig","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"moto","old_version":"5.1.4","new_version":"5.1.19","repository_url":"https://github.com/getmoto/moto"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"mypy-boto3-s3","old_version":"1.38.0","new_version":"1.42.21","repository_url":"https://github.com/youtype/mypy_boto3_builder"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"responses","old_version":"0.25.7","new_version":"0.25.8","repository_url":"https://github.com/getsentry/responses"},{"name":"ruff","old_version":"0.11.10","new_version":"0.14.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-awscrt","old_version":"0.27.2","new_version":"0.30.0","repository_url":"https://github.com/youtype/types-awscrt"},{"name":"types-requests","old_version":"2.32.0.20250515","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-s3transfer","old_version":"0.12.0","new_version":"0.16.0","repository_url":"https://github.com/youtype/types-s3transfer"},{"name":"typing-extensions","old_version":"4.13.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"xmltodict","old_version":"0.14.2","new_version":"1.0.2","repository_url":"https://github.com/martinblech/xmltodict"},{"name":"alabaster","old_version":"0.7.16","new_version":"1.0.0","repository_url":"https://github.com/sphinx-doc/alabaster"},{"name":"anyio","old_version":"4.9.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.3"},{"name":"cachecontrol","old_version":"0.14.3","new_version":"0.14.4","repository_url":"https://github.com/psf/cachecontrol"},{"name":"click","old_version":"8.2.0","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":"filelock","old_version":"3.18.0","new_version":"3.20.3","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.58.0","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"furo","old_version":"2024.8.6","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"kiwisolver","old_version":"1.4.8","new_version":"1.4.9","repository_url":"https://github.com/nucleic/kiwi"},{"name":"matplotlib","old_version":"3.10.3","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mdit-py-plugins","old_version":"0.4.2","new_version":"0.5.0","repository_url":"https://github.com/executablebooks/mdit-py-plugins"},{"name":"more-itertools","old_version":"10.7.0","new_version":"10.8.0","repository_url":"https://github.com/more-itertools/more-itertools"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.1.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"pillow","old_version":"11.2.1","new_version":"12.1.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.3.1","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"ruamel-yaml","old_version":"0.18.10","new_version":"0.19.1"},{"name":"ruamel-yaml-clib","old_version":"0.2.12","new_version":"0.2.15"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"sphinx","old_version":"7.3.7","new_version":"9.0.4","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-autodoc-typehints","old_version":"2.3.0","new_version":"3.6.1","repository_url":"https://github.com/tox-dev/sphinx-autodoc-typehints"},{"name":"sphinx-jinja2-compat","old_version":"0.3.0","new_version":"0.4.1","repository_url":"https://github.com/sphinx-toolbox/sphinx-jinja2-compat"},{"name":"sphinx-prompt","old_version":"1.8.0","new_version":"1.10.2","repository_url":"https://github.com/sbrunner/sphinx-prompt"},{"name":"sphinx-tabs","old_version":"3.4.5","new_version":"3.4.7","repository_url":"https://github.com/executablebooks/sphinx-tabs"},{"name":"sphinx-toolbox","old_version":"4.0.0","new_version":"4.1.1","repository_url":"https://github.com/sphinx-toolbox/sphinx-toolbox"},{"name":"sphinxext-opengraph","old_version":"0.10.0","new_version":"0.13.0","repository_url":"https://github.com/sphinx-doc/sphinxext-opengraph"},{"name":"starlette","old_version":"0.46.2","new_version":"0.51.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"uvicorn","old_version":"0.34.2","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.0.5","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"}],"path":null,"ecosystem":"pip"},"body":"Bumps the py-updates group with 79 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [awscli](https://github.com/aws/aws-cli) | `1.40.17` | `1.44.15` |\n| [polars](https://github.com/pola-rs/polars) | `1.28.1` | `1.37.0` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.32.5` |\n| [biopython](https://github.com/biopython/biopython) | `1.85` | `1.86` |\n| [boto3](https://github.com/boto/boto3) | `1.38.18` | `1.42.25` |\n| [botocore](https://github.com/boto/botocore) | `1.38.18` | `1.42.25` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.4.26` | `2026.1.4` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.4` |\n| [cloudpathlib](https://github.com/drivendataorg/cloudpathlib) | `0.21.1` | `0.23.0` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.19` | `0.22.4` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [jellyfish](https://jellyfish.jpt.sh/) | `1.2.0` | `1.2.1` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `3.0.0` | `4.0.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.2.5` | `2.4.1` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [pyarrow](https://github.com/apache/arrow) | `20.0.0` | `22.0.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.2.0` |\n| [rsa](https://github.com/sybrenstuvel/python-rsa) | `4.7.2` | `4.9.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.12.0` | `0.16.0` |\n| [structlog](https://github.com/hynek/structlog) | `25.3.0` | `25.5.0` |\n| [tzdata](https://github.com/python/tzdata) | `2025.2` | `2025.3` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.6.3` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n| [boto3-stubs](https://github.com/youtype/mypy_boto3_builder) | `1.38.18` | `1.42.25` |\n| [botocore-stubs](https://github.com/youtype/botocore-stubs) | `1.38.18` | `1.42.25` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.8.0` | `7.13.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.3` | `46.0.3` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.5.1` | `1.5.5` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [moto](https://github.com/getmoto/moto) | `5.1.4` | `5.1.19` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [mypy-boto3-s3](https://github.com/youtype/mypy_boto3_builder) | `1.38.0` | `1.42.21` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [responses](https://github.com/getsentry/responses) | `0.25.7` | `0.25.8` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.10` | `0.14.11` |\n| [types-awscrt](https://github.com/youtype/types-awscrt) | `0.27.2` | `0.30.0` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20250515` | `2.32.4.20260107` |\n| [types-s3transfer](https://github.com/youtype/types-s3transfer) | `0.12.0` | `0.16.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.13.2` | `4.15.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [xmltodict](https://github.com/martinblech/xmltodict) | `0.14.2` | `1.0.2` |\n| [alabaster](https://github.com/sphinx-doc/alabaster) | `0.7.16` | `1.0.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.12.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.3` |\n| [cachecontrol](https://github.com/psf/cachecontrol) | `0.14.3` | `0.14.4` |\n| [click](https://github.com/pallets/click) | `8.2.0` | `8.3.1` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.20.3` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.58.0` | `4.61.1` |\n| [furo](https://github.com/pradyunsg/furo) | `2024.8.6` | `2025.12.19` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.8` | `1.4.9` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.3` | `3.10.8` |\n| [mdit-py-plugins](https://github.com/executablebooks/mdit-py-plugins) | `0.4.2` | `0.5.0` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.7.0` | `10.8.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.1.2` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.1.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.5.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.3.1` |\n| ruamel-yaml | `0.18.10` | `0.19.1` |\n| ruamel-yaml-clib | `0.2.12` | `0.2.15` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `7.3.7` | `9.0.4` |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-autodoc-typehints](https://github.com/tox-dev/sphinx-autodoc-typehints) | `2.3.0` | `3.6.1` |\n| [sphinx-jinja2-compat](https://github.com/sphinx-toolbox/sphinx-jinja2-compat) | `0.3.0` | `0.4.1` |\n| [sphinx-prompt](https://github.com/sbrunner/sphinx-prompt) | `1.8.0` | `1.10.2` |\n| [sphinx-tabs](https://github.com/executablebooks/sphinx-tabs) | `3.4.5` | `3.4.7` |\n| [sphinx-toolbox](https://github.com/sphinx-toolbox/sphinx-toolbox) | `4.0.0` | `4.1.1` |\n| [sphinxext-opengraph](https://github.com/sphinx-doc/sphinxext-opengraph) | `0.10.0` | `0.13.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.46.2` | `0.51.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.2` | `0.40.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.0.5` | `1.1.1` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n\n\nUpdates `awscli` from 1.40.17 to 1.44.15\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/56a551a5916a09423336124a8967615e0d0be143\"\u003e\u003ccode\u003e56a551a\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.15'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/b78a64f27cce6dc86754f39196b44f5b1a7f266d\"\u003e\u003ccode\u003eb78a64f\u003c/code\u003e\u003c/a\u003e Bumping version to 1.44.15\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/715bce7cf992e841f04b6b15c701d4292450d9d6\"\u003e\u003ccode\u003e715bce7\u003c/code\u003e\u003c/a\u003e Update changelog based on model updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/72510f852833ea976520851bda26757265c6c207\"\u003e\u003ccode\u003e72510f8\u003c/code\u003e\u003c/a\u003e Create update-vpc-link.rst (\u003ca href=\"https://redirect.github.com/aws/aws-cli/issues/9405\"\u003e#9405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/d6a71c953a9155fceb7fcecf4246718153522c4d\"\u003e\u003ccode\u003ed6a71c9\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.14'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/b2be64a7c3c8747a0cfd7b174307409f9c130420\"\u003e\u003ccode\u003eb2be64a\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.14' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/95337ce8110bbd70efef24b8255892a374698e52\"\u003e\u003ccode\u003e95337ce\u003c/code\u003e\u003c/a\u003e Bumping version to 1.44.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/3224f1b5e55abc438d1f86f06a70fef3dbaa89ca\"\u003e\u003ccode\u003e3224f1b\u003c/code\u003e\u003c/a\u003e Update changelog based on model updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/d90b023b6b34361dec3bffee9b64f62d662fa3d7\"\u003e\u003ccode\u003ed90b023\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.13'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-cli/commit/76549b03313edbe5b8e011b9cf35e3e89b5d5387\"\u003e\u003ccode\u003e76549b0\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.44.13' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aws/aws-cli/compare/1.40.17...1.44.15\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `polars` from 1.28.1 to 1.37.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pola-rs/polars/releases\"\u003epolars's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePython Polars 1.37.0\u003c/h2\u003e\n\u003ch2\u003e🚀 Performance improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up \u003ccode\u003eSQL\u003c/code\u003e interface \u0026quot;ORDER BY\u0026quot; clauses (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26037\"\u003e#26037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd fast kernel for is_nan and use it for numpy NaN-\u0026gt;null conversion (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26034\"\u003e#26034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize ArrayFromIter implementations for ObjectArray (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25712\"\u003e#25712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew streaming NDJSON sink pipeline (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25948\"\u003e#25948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew streaming CSV sink pipeline (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25900\"\u003e#25900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDispatch partitioned usage of \u003ccode\u003esink_*\u003c/code\u003e functions to new-streaming by default (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25910\"\u003e#25910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace ryu with faster zmij (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25885\"\u003e#25885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce memory usage for .item() count in grouped first/last (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25787\"\u003e#25787\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip schema inference if schema provided for \u003ccode\u003escan_csv/ndjson\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25757\"\u003e#25757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd width-aware chunking to prevent degradation with wide data (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25764\"\u003e#25764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse new sink pipeline for write/sink_ipc (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25746\"\u003e#25746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce memory usage when scanning multiple parquet files in streaming (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25747\"\u003e#25747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't call cluster_with_columns optimization if not needed (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25724\"\u003e#25724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e✨ Enhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new \u003ccode\u003epl.PartitionBy\u003c/code\u003e API (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26004\"\u003e#26004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eArrowStreamExportable and sink_delta (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25994\"\u003e#25994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRelease musl builds (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25894\"\u003e#25894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement streaming decompression for CSV \u003ccode\u003eCOUNT(*)\u003c/code\u003e fast path (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25988\"\u003e#25988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd nulls support for rolling_mean_by (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25917\"\u003e#25917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd lazy \u003ccode\u003ecollect_all\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25991\"\u003e#25991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd streaming decompression for NDJSON schema inference (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25992\"\u003e#25992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved handling of unqualified SQL \u003ccode\u003eJOIN\u003c/code\u003e columns that are ambiguous (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25761\"\u003e#25761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop Python 3.9 support (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25984\"\u003e#25984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpose record batch size in \u003ccode\u003e{sink,write}_ipc\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25958\"\u003e#25958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003enull_on_oob\u003c/code\u003e parameter to \u003ccode\u003eexpr.get\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25957\"\u003e#25957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSuggest correct timezone if timezone validation fails (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25937\"\u003e#25937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport streaming IPC scan from S3 object store (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25868\"\u003e#25868\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement streaming CSV schema inference (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25911\"\u003e#25911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport hashing of meta expressions (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25916\"\u003e#25916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003eSQLContext\u003c/code\u003e recognition of possible table objects in the Python globals (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25749\"\u003e#25749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd pl.Expr.(min|max)_by (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25905\"\u003e#25905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove MemSlice Debug impl (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25913\"\u003e#25913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement or fix json encode/decode for (U)Int128, Categorical, Enum, Decimal (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25896\"\u003e#25896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand scatter to more dtypes (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25874\"\u003e#25874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement streaming CSV decompression (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25842\"\u003e#25842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Series \u003ccode\u003esql\u003c/code\u003e method for API consistency (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25792\"\u003e#25792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMark Polars as safe for free-threading (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25677\"\u003e#25677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Binary and Decimal in arg_(min|max) (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25839\"\u003e#25839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow Decimal parsing in str.json_decode (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25797\"\u003e#25797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eshift\u003c/code\u003e support for Object data type (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25769\"\u003e#25769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing \u003ccode\u003eSeries.arr.mean\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25774\"\u003e#25774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow scientific notation when parsing Decimals (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25711\"\u003e#25711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐞 Bug fixes\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/pola-rs/polars/commit/1674b37a0a066e76d33eb8f66d31fd870c0cd52d\"\u003e\u003ccode\u003e1674b37\u003c/code\u003e\u003c/a\u003e Python Polars 1.37.0 (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26038\"\u003e#26038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/4c49bf5ebb9208e70a84a7effdc5368bc901ba84\"\u003e\u003ccode\u003e4c49bf5\u003c/code\u003e\u003c/a\u003e perf: Speed up \u003ccode\u003eSQL\u003c/code\u003e interface \u0026quot;ORDER BY\u0026quot; clauses (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26037\"\u003e#26037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/c1b9d86310269ae4ab22a9bff87d8f2657c8b050\"\u003e\u003ccode\u003ec1b9d86\u003c/code\u003e\u003c/a\u003e chore: Update rust compiler (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26017\"\u003e#26017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/68911e4e9f7a2bdedca6d3aefa208a6ec02cf8ad\"\u003e\u003ccode\u003e68911e4\u003c/code\u003e\u003c/a\u003e chore: Improve csv test coverage (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25980\"\u003e#25980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/5f25b4f6b828bcd5df1116b0517358ad51c51529\"\u003e\u003ccode\u003e5f25b4f\u003c/code\u003e\u003c/a\u003e perf: Add fast kernel for is_nan and use it for numpy NaN-\u0026gt;null conversion (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/59463cefe36550547b50e5c6801b1d98516cc0c8\"\u003e\u003ccode\u003e59463ce\u003c/code\u003e\u003c/a\u003e docs(python): Fix display of deprecation warning (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26010\"\u003e#26010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/21721eba70b9fc18dff58958997c151dfe214903\"\u003e\u003ccode\u003e21721eb\u003c/code\u003e\u003c/a\u003e fix(python): Release GIL on collect_batches (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26033\"\u003e#26033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/778dbb645ccbff8b1e5999a279037571a03c718b\"\u003e\u003ccode\u003e778dbb6\u003c/code\u003e\u003c/a\u003e fix: Missing buffer update in String is_in Parquet pushdown (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/26019\"\u003e#26019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/807cfc5a2eae6af453b14a1663e74d07202ce92e\"\u003e\u003ccode\u003e807cfc5\u003c/code\u003e\u003c/a\u003e fix: Make \u003ccode\u003estruct.with_fields\u003c/code\u003e data model coherent (\u003ca href=\"https://redirect.github.com/pola-rs/polars/issues/25610\"\u003e#25610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pola-rs/polars/commit/e6d62387f64b225754c15ad1e0b3d4f981509692\"\u003e\u003ccode\u003ee6d6238\u003c/code\u003e\u003c/a\u003e refactor(rust): Use \u003ccode\u003efrom_any_values_and_dtype\u003c/code\u003e in \u003ccode\u003eSeries::extend_constant\u003c/code\u003e ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pola-rs/polars/compare/py-1.28.1...py-1.37.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.32.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6965\"\u003e#6965\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS.\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `biopython` from 1.85 to 1.86\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/biopython/biopython/blob/master/NEWS.rst\"\u003ebiopython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e28 October 2025: Biopython 1.86\u003c/h1\u003e\n\u003cp\u003eThis release of Biopython supports Python 3.10, 3.11, 3.12, 3.13 and 3.14.  It\nhas also been tested on PyPy3.10 v7.3.19.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.SearchIO\u003c/code\u003e now supports parsing the tabular and plain text output of\n\u003ccode\u003eInfernal \u0026lt;http://eddylab.org/infernal/\u0026gt;\u003c/code\u003e (v1.0.0+) RNA search tool. The\nformat names are \u003ccode\u003einfernal-tab\u003c/code\u003e and \u003ccode\u003einfernal-text\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe default value of the gap score of a \u003ccode\u003ePairwiseAligner\u003c/code\u003e object was changed\nin this release.  Previously, for consistency with \u003ccode\u003eBio.pairwise2\u003c/code\u003e, the\ndefault value for gap score was 0.  However, this means that a mismatch, an\ninsertion followed by a deletion, and a deletion followed by an insertion all\nget assigned a score of 0.  The aligner then finds a large number of alignments\nthat are logically the same, but have trivial differences between them.  For\nexample, aligning AAACAAA to AAAGAAA previously yielded the following three\nalignments, all with score 6::\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e AAACAAA        AAAC-AAA        AAA-CAAA\n AAAGAAA        AAA-GAAA        AAAG-AAA\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eWith the new default parameter for the gap score, only the first alignment is\nreturned.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.PDB.PDBIO\u003c/code\u003e now ensures that b-factor values are always at most 6 characters to\nensure that we do not violate the wwPDB specification. This should not have an impact\non the majority of uses, as b-factor values are generally small (less than 100). When\n1000 \u0026lt;= b-factor \u0026lt; 10_000, the value is rounded to a single decimal place. When,\n10_000 \u0026lt;= b-factor \u0026lt; 999_999, the value is rounded to zero decimal places. Values\nabove 999_999 are now clamped. The justification for this is the rise in the b-factor\nfield being used for additional metadata, typically from computational tools.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.Align\u003c/code\u003e now provides a method \u003ccode\u003eAlignment.from_alignments_with_same_reference\u003c/code\u003e\nto construct a multiple sequence alignment from a collection of alignments\nthat share the same reference sequence.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.PDB.PDBIO\u003c/code\u003e will now raise module specific warnings:\n\u003ccode\u003eBio.PDB.PDBExceptions.PDBIOWarning\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBio.PDB.SCADIO\u003c/code\u003e now supports object selection by color in the OpenSCAD\noutput file.  This enables generation of separate STL files for each color for\nprinting protein structures on multi-material 3D printers.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eiplotx\u003c/code\u003e library is mentioned in the Tutorial as an option to visualise\ntrees using complex style options.\u003c/p\u003e\n\u003cp\u003eMany thanks to the Biopython developers and community for making this release\npossible, especially the following contributors:\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\u003eSee full diff in \u003ca href=\"https://github.com/biopython/biopython/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.38.18 to 1.42.25\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/8dd60074e59d29c733b6b6eefad3a75ab615090b\"\u003e\u003ccode\u003e8dd6007\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.25'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/0bf89db7865cfef4ed697b92199c093ca6f5f803\"\u003e\u003ccode\u003e0bf89db\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/34bf8f819c2870d7baa90c6e65f83dea34586bdd\"\u003e\u003ccode\u003e34bf8f8\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/9b8fbad82f97a16e4b468b7f9ff83bafa2e8d55d\"\u003e\u003ccode\u003e9b8fbad\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.24'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/6dda579bbbeafe145506fb40a65a2f7979f196c2\"\u003e\u003ccode\u003e6dda579\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.24' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/dc3945deb487ce84d804cb813b8075461973041f\"\u003e\u003ccode\u003edc3945d\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/60784e3398975b90331d227e1377a42232fd3f8a\"\u003e\u003ccode\u003e60784e3\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/dae67fb6753924da30b42cc61dc0d940a672afbd\"\u003e\u003ccode\u003edae67fb\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.23'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c7b7d4157a8130921bf9e7bef024a1dd17eaf600\"\u003e\u003ccode\u003ec7b7d41\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.23' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/95878f640e54fa7658e242eb2213d361b92162c2\"\u003e\u003ccode\u003e95878f6\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.23\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.38.18...1.42.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `botocore` from 1.38.18 to 1.42.25\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/a35f376045da3bc2dcf0de2c1346482ce1ad30c7\"\u003e\u003ccode\u003ea35f376\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.25'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/721ab7860e75d7c5ef5c0eda91f18c568b2f31e1\"\u003e\u003ccode\u003e721ab78\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/b4541b5471194a63234467945b97397e42e265e4\"\u003e\u003ccode\u003eb4541b5\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/90830226c8e3cd3b96755c3b71be3314225871e3\"\u003e\u003ccode\u003e9083022\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/331cd6689f458e58465234ad58a60881d49007fa\"\u003e\u003ccode\u003e331cd66\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.24'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/47f2b30e092fd853d28193d60cb10acf8a89b5ec\"\u003e\u003ccode\u003e47f2b30\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.24' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/230fac5f074e94b3c32f112624c04224d123873d\"\u003e\u003ccode\u003e230fac5\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/cc102f140d97d286544a36adb5c3fc6043c50321\"\u003e\u003ccode\u003ecc102f1\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/beaeab5eee438b737029aa27c7b7641ec89ba3ad\"\u003e\u003ccode\u003ebeaeab5\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/f6e323727729fb2aa26ec9f8362de39d6adf1d2e\"\u003e\u003ccode\u003ef6e3237\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.23'\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.38.18...1.42.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.4.26 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.04.26...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cloudpathlib` from 0.21.1 to 0.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/drivendataorg/cloudpathlib/releases\"\u003ecloudpathlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14 (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/529\"\u003e#529\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/530\"\u003e#530\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eChanged \u003ccode\u003eCloudPath.copy\u003c/code\u003e to have the first parameter named \u003ccode\u003etarget\u003c/code\u003e instead of \u003ccode\u003edestination\u003c/code\u003e and added new \u003ccode\u003efollow_symlinks\u003c/code\u003e and \u003ccode\u003epreserve_metadata\u003c/code\u003e kwargs. \u003cstrong\u003eBreaking change for users that relied on the first parameter being named \u003ccode\u003edestination\u003c/code\u003e instead of \u003ccode\u003etarget\u003c/code\u003e.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.copy_into\u003c/code\u003e to copy a file or directory into another file or directory.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.move\u003c/code\u003e to move a file or directory to another location.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.move_into\u003c/code\u003e to move a file or directory into another file or directory.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPathInfo\u003c/code\u003e and \u003ccode\u003eCloudPath.info\u003c/code\u003e to get information about a file or directory.\u003c/li\u003e\n\u003cli\u003eAdded additional no-op kwargs to \u003ccode\u003emkdir\u003c/code\u003e, \u003ccode\u003etouch\u003c/code\u003e, \u003ccode\u003eglob\u003c/code\u003e, \u003ccode\u003erglob\u003c/code\u003e, \u003ccode\u003estat\u003c/code\u003e to match pathlib.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue with GS credentials, using default auth enables a wider set of authentication methods in GS (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/390\"\u003e#390\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/514\"\u003e#514\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ljyanesm\"\u003e\u003ccode\u003e@​ljyanesm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for http(s) urls with \u003ccode\u003eHttpClient\u003c/code\u003e, \u003ccode\u003eHttpPath\u003c/code\u003e, \u003ccode\u003eHttpsClient\u003c/code\u003e, and \u003ccode\u003eHttpsPath\u003c/code\u003e. (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/455\"\u003e#455\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded experimental support for patching the builtins \u003ccode\u003eopen\u003c/code\u003e, \u003ccode\u003eos\u003c/code\u003e, \u003ccode\u003eos.path\u003c/code\u003e, and \u003ccode\u003eglob\u003c/code\u003e to work with \u003ccode\u003eCloudPath\u003c/code\u003e objects. It is off by default; see the new \u0026quot;Compatibility\u0026quot; section in the docs for more information. (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/128\"\u003e#128\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/322\"\u003e#322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eCloudPath(*parts)\u003c/code\u003e to create a \u003ccode\u003eCloudPath\u003c/code\u003e object from a list of parts (to match \u003ccode\u003epathlib.Path\u003c/code\u003e). \u003cstrong\u003eThis is a potentially breaking change for users that relied on the second arg being the \u003ccode\u003eclient\u003c/code\u003e instead of making it an explicit kwarg.\u003c/strong\u003e (PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/322\"\u003e#322\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/drivendataorg/cloudpathlib/blob/master/HISTORY.md\"\u003ecloudpathlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.23.0 (2025-10-07)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14 (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/529\"\u003e#529\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/530\"\u003e#530\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eChanged \u003ccode\u003eCloudPath.copy\u003c/code\u003e to have the first parameter named \u003ccode\u003etarget\u003c/code\u003e instead of \u003ccode\u003edestination\u003c/code\u003e and added new \u003ccode\u003efollow_symlinks\u003c/code\u003e and \u003ccode\u003epreserve_metadata\u003c/code\u003e kwargs. \u003cstrong\u003eBreaking change for users that relied on the first parameter being named \u003ccode\u003edestination\u003c/code\u003e instead of \u003ccode\u003etarget\u003c/code\u003e.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.copy_into\u003c/code\u003e to copy a file or directory into another file or directory.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.move\u003c/code\u003e to move a file or directory to another location.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPath.move_into\u003c/code\u003e to move a file or directory into another file or directory.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCloudPathInfo\u003c/code\u003e and \u003ccode\u003eCloudPath.info\u003c/code\u003e to get information about a file or directory.\u003c/li\u003e\n\u003cli\u003eAdded additional no-op kwargs to \u003ccode\u003emkdir\u003c/code\u003e, \u003ccode\u003etouch\u003c/code\u003e, \u003ccode\u003eglob\u003c/code\u003e, \u003ccode\u003erglob\u003c/code\u003e, \u003ccode\u003estat\u003c/code\u003e to match pathlib.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.22.0 (2025-08-29)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue with GS credentials, using default auth enables a wider set of authentication methods in GS (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/390\"\u003e#390\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/514\"\u003e#514\u003c/a\u003e, thanks \u003ca href=\"https://github.com/ljyanesm\"\u003e\u003ccode\u003e@​ljyanesm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for http(s) urls with \u003ccode\u003eHttpClient\u003c/code\u003e, \u003ccode\u003eHttpPath\u003c/code\u003e, \u003ccode\u003eHttpsClient\u003c/code\u003e, and \u003ccode\u003eHttpsPath\u003c/code\u003e. (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/455\"\u003e#455\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded experimental support for patching the builtins \u003ccode\u003eopen\u003c/code\u003e, \u003ccode\u003eos\u003c/code\u003e, \u003ccode\u003eos.path\u003c/code\u003e, and \u003ccode\u003eglob\u003c/code\u003e to work with \u003ccode\u003eCloudPath\u003c/code\u003e objects. It is off by default; see the new \u0026quot;Compatibility\u0026quot; section in the docs for more information. (Issue \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/128\"\u003e#128\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/322\"\u003e#322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eCloudPath(*parts)\u003c/code\u003e to create a \u003ccode\u003eCloudPath\u003c/code\u003e object from a list of parts (to match \u003ccode\u003epathlib.Path\u003c/code\u003e). \u003cstrong\u003eThis is a potentially breaking change for users that relied on the second arg being the \u003ccode\u003eclient\u003c/code\u003e instead of making it an explicit kwarg.\u003c/strong\u003e (PR \u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/pull/322\"\u003e#322\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/drivendataorg/cloudpathlib/commit/28f1d943078517262d045ae50136edf27a5298a1\"\u003e\u003ccode\u003e28f1d94\u003c/code\u003e\u003c/a\u003e WIP Support 3.14 (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/fec5918d6725e9f1f52bee003528f4f854454980\"\u003e\u003ccode\u003efec5918\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish in /.github/workflows (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/e7900023bf4b32b70ca5b2d798f9ce52187582f8\"\u003e\u003ccode\u003ee790002\u003c/code\u003e\u003c/a\u003e version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/bb1f1e4cb5eba0928cec2aaff30cb0f5ace1f108\"\u003e\u003ccode\u003ebb1f1e4\u003c/code\u003e\u003c/a\u003e WIP: Patch open, os and os.path builtins (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/322\"\u003e#322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/12005505fc29ab4183968022a487416a31b1a1bd\"\u003e\u003ccode\u003e1200550\u003c/code\u003e\u003c/a\u003e Refactor GS authentication to use default credentials (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/514\"\u003e#514\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/526\"\u003e#526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/b21cac14f0090021594f7e3afae9c48f5d7dbd46\"\u003e\u003ccode\u003eb21cac1\u003c/code\u003e\u003c/a\u003e Implement HTTP(s) support (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/863e884cbf1cf141cdf7bf9c0623e0cd3d27841d\"\u003e\u003ccode\u003e863e884\u003c/code\u003e\u003c/a\u003e fix for azure typing differences (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drivendataorg/cloudpathlib/commit/65c5c012bd4297ce4e812cfb8bbf9827db346e03\"\u003e\u003ccode\u003e65c5c01\u003c/code\u003e\u003c/a\u003e Set pytest-cases\u0026gt;=3.9.1 (\u003ca href=\"https://redirect.github.com/drivendataorg/cloudpathlib/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/drivendataorg/cloudpathlib/compare/v0.21.1...v0.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `docutils` from 0.19 to 0.22.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rtfd/recommonmark/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.10 to 3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jellyfish` from 1.2.0 to 1.2.1\n\nUpdates `markdown-it-py` from 3.0.0 to 4.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/executablebooks/markdown-it-py/releases\"\u003emarkdown-it-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis primarily drops support for Python 3.8 and 3.9, adds support for Python 3.13,\nand updates the parser to comply with Commonmark 0.31.2 and Markdown-It v14.1.0.\u003c/p\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Drop Python 3.8, test 3.13 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/342\"\u003eexecutablebooks/markdown-it-py#342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Drop support for Python 3.9 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/360\"\u003eexecutablebooks/markdown-it-py#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Comply with Commonmark 0.31.2 by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/362\"\u003eexecutablebooks/markdown-it-py#362\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👌 Improve performance of \u0026quot;text\u0026quot; inline rule by \u003ca href=\"https://github.com/hukkin\"\u003e\u003ccode\u003e@​hukkin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/347\"\u003eexecutablebooks/markdown-it-py#347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 Use \u003ccode\u003estr.removesuffix\u003c/code\u003e by \u003ca href=\"https://github.com/hukkin\"\u003e\u003ccode\u003e@​hukkin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/348\"\u003eexecutablebooks/markdown-it-py#348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 limit the number of autocompleted cells in a table by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/364\"\u003eexecutablebooks/markdown-it-py#364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 fix quadratic complexity in reference parser by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/367\"\u003eexecutablebooks/markdown-it-py#367\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix emphasis inside raw links bugs by \u003ca href=\"https://github.com/tsutsu3\"\u003e\u003ccode\u003e@​tsutsu3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/320\"\u003eexecutablebooks/markdown-it-py#320\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Replace black and isort with ruff formatter by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/313\"\u003eexecutablebooks/markdown-it-py#313\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Fixed Code Style paragraph still referring to flake8 by \u003ca href=\"https://github.com/venthur\"\u003e\u003ccode\u003e@​venthur\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/309\"\u003eexecutablebooks/markdown-it-py#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Add \u0026quot;store_labels\u0026quot; to OptionsType by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/343\"\u003eexecutablebooks/markdown-it-py#343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Move \u003ccode\u003ecode_style\u003c/code\u003e to dependency group by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/344\"\u003eexecutablebooks/markdown-it-py#344\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Update codecov action by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/345\"\u003eexecutablebooks/markdown-it-py#345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Update pre-commit and upload-artifact by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/359\"\u003eexecutablebooks/markdown-it-py#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 Improve spec update script by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/361\"\u003eexecutablebooks/markdown-it-py#361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 simplify logic in scanDelims by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/365\"\u003eexecutablebooks/markdown-it-py#365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🧪 Add CI testing for Python 3.12 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/303\"\u003eexecutablebooks/markdown-it-py#303\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🧪 Fix codecov by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/332\"\u003eexecutablebooks/markdown-it-py#332\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📚 Fix typo by \u003ca href=\"https://github.com/bwagner\"\u003e\u003ccode\u003e@​bwagner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/315\"\u003eexecutablebooks/markdown-it-py#315\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Fix RTD build by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/322\"\u003eexecutablebooks/markdown-it-py#322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 DOCS: Fix a few old URLs by \u003ca href=\"https://github.com/elijahgreenstein\"\u003e\u003ccode\u003e@​elijahgreenstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/358\"\u003eexecutablebooks/markdown-it-py#358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Improve README by \u003ca href=\"https://github.com/mrmurilo75\"\u003e\u003ccode\u003e@​mrmurilo75\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/340\"\u003eexecutablebooks/markdown-it-py#340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Fix CI badge link by \u003ca href=\"https://github.com/tsutsu3\"\u003e\u003ccode\u003e@​tsutsu3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/291\"\u003eexecutablebooks/markdown-it-py#291\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Update docs by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/292\"\u003eexecutablebooks/markdown-it-py#292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Add icon to readme by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/293\"\u003eexecutablebooks/markdown-it-py#293\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Update icon by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/294\"\u003eexecutablebooks/markdown-it-py#294\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 DOCS: Clarify docs regarding security configuration by \u003ca href=\"https://github.com/djramones\"\u003e\u003ccode\u003e@​djramones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/296\"\u003eexecutablebooks/markdown-it-py#296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 Fix the RTD build by \u003ca href=\"https://github.com/chrisjsewell\"\u003e\u003ccode\u003e@​chrisjsewell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/311\"\u003eexecutablebooks/markdown-it-py#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📚 DOCS: Fix typos by \u003ca href=\"https://github.com/elijahgreenstein\"\u003e\u003ccode\u003e@​elijahgreenstein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/366\"\u003eexecutablebooks/markdown-it-py#366\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/executablebooks/markdown-it-py/blob/master/CHANGELOG.md\"\u003emarkdown-it-py's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.0 - 2024-08-10\u003c/h2\u003e\n\u003cp\u003eThis primarily drops support for Python 3.9, adds support for Python 3.13,\nand updates the parser to comply with Commonmark 0.31.2 and Markdown-It v14.1.0.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Drop support for Python 3.9 in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/360\"\u003e#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆️ Comply with Commonmark 0.31.2 in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/362\"\u003e#362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 Improve performance of \u0026quot;text\u0026quot; inline rule in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/347\"\u003e#347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 Use \u003ccode\u003estr.removesuffix\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/348\"\u003e#348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 limit the number of autocompleted cells in a table in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/364\"\u003e#364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e👌 fix quadratic complexity in reference parser in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/367\"\u003e#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 Fix emphasis inside raw links bugs in \u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/pull/320\"\u003e#320\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/markdown-it-py/compare/v3.0.0...v4.0.0\"\u003ehttps://github.com/executablebooks/markdown-it-py/compare/v3.0.0...v4.0.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/executablebooks/markdown-it-py/commit/c62983f1554124391b47170180e6c62df4d476ca\"\u003e\u003ccode\u003ec62983f\u003c/code\u003e\u003c/a\u003e 🚀 RELEASE v4.0.0 (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/368\"\u003e#368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/9e93bd554147ffb8582581e14620c7611103d2ff\"\u003e\u003ccode\u003e9e93bd5\u003c/code\u003e\u003c/a\u003e 👌 fix quadratic complexity in reference parser (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/da45c8764b2077425c091fa1811bbb1c5f211bd1\"\u003e\u003ccode\u003eda45c87\u003c/code\u003e\u003c/a\u003e 📚 DOCS: Fix typos (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/87b16e272bf8207182084e07a63253b98fc437d7\"\u003e\u003ccode\u003e87b16e2\u003c/code\u003e\u003c/a\u003e 🔧 simplify logic in scanDelims (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/e4009641db528444b85d384af815e9cad997a016\"\u003e\u003ccode\u003ee400964\u003c/code\u003e\u003c/a\u003e 👌 limit the number of autocompleted cells in a table (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/4535d77edcb5f51450a266135687eeae8bcc5033\"\u003e\u003ccode\u003e4535d77\u003c/code\u003e\u003c/a\u003e ⬆️ Comply with Commonmark 0.31.2 (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/8eb20ac1cb63e09dcd78e84a0c71dab8446bb73c\"\u003e\u003ccode\u003e8eb20ac\u003c/code\u003e\u003c/a\u003e 🔧 Improve spec update script (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/fb9d3ab646e4f752dc8fd52e1dd7613c350ff190\"\u003e\u003ccode\u003efb9d3ab\u003c/code\u003e\u003c/a\u003e ⬆️ Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/9ffe841832d33264201aaff120349f001a02953a\"\u003e\u003ccode\u003e9ffe841\u003c/code\u003e\u003c/a\u003e 📚 DOCS: Fix a few old URLs (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/executablebooks/markdown-it-py/commit/154fe43feb17947e2c933d0bb3e26618129909a8\"\u003e\u003ccode\u003e154fe43\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit and upload-artifact (\u003ca href=\"https://redirect.github.com/executablebooks/markdown-it-py/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/executablebooks/markdown-it-py/compare/v3.0.0...v4.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.2.5 to 2.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.1 (Jan 10, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.1 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.1 is a patch release that fixes bugs discoved after the\n2.4.0 release. In particular, the typo \u003ccode\u003eSeedlessSequence\u003c/code\u003e is preserved to\nenable wheels using the random Cython API and built against NumPy \u0026lt; 2.4.0\nto run without errors.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 9 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAlexander Shadchin\u003c/li\u003e\n\u003cli\u003eBill Tompkins +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMarten van Kerkwijk\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eRaghuveer Devulapalli\u003c/li\u003e\n\u003cli\u003eRalf Gommers\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 15 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30490\"\u003e#30490\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30503\"\u003e#30503\u003c/a\u003e: DOC: \u003ccode\u003enumpy.select\u003c/code\u003e: fix \u003ccode\u003edefault\u003c/code\u003e parameter docstring...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30504\"\u003e#30504\u003c/a\u003e: REV: Revert part of \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30164\"\u003e#30164\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30500\"\u003e#30500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30506\"\u003e#30506\u003c/a\u003e: TYP: \u003ccode\u003enumpy.select\u003c/code\u003e: allow passing array-like \u003ccode\u003edefault\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30507\"\u003e#30507\u003c/a\u003e: MNT: use if constexpr for compile-time branch selection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30513\"\u003e#30513\u003c/a\u003e: BUG: Fix leak in flat assignment iterator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30516\"\u003e#30516\u003c/a\u003e: BUG: fix heap overflow in fixed-width string multiply (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30511\"\u003e#30511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30523\"\u003e#30523\u003c/a\u003e: BUG: Ensure summed weights returned by np.average always are...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30527\"\u003e#30527\u003c/a\u003e: TYP: Fix return type of histogram2d\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30594\"\u003e#30594\u003c/a\u003e: MAINT: avoid passing ints to random functions that take double...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30595\"\u003e#30595\u003c/a\u003e: BLD: Avoiding conflict with pygit2 for static build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30596\"\u003e#30596\u003c/a\u003e: MAINT: Fix msvccompiler missing error on FreeBSD\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30608\"\u003e#30608\u003c/a\u003e: BLD: update vendored Meson to 1.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30620\"\u003e#30620\u003c/a\u003e: ENH: use more fine-grained critical sections in array coercion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30623\"\u003e#30623\u003c/a\u003e: BUG: Undo result type change of quantile/percentile but keep...\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.4.0 (Dec 20, 2025)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.0 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.0 release continues the work to improve free threaded Python\nsupport, user dtypes implementation, and annotations. There are many expired\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/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst\"\u003enumpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis is a walkthrough of the NumPy 2.4.0 release on Linux, which will be the\nfirst feature release using the \u003ccode\u003enumpy/numpy-release \u0026lt;https://github.com/numpy/numpy-release\u0026gt;\u003c/code\u003e__ repository.\u003c/p\u003e\n\u003cp\u003eThe comm...\n\n_Description has been truncated_","html_url":"https://github.com/reichlab/cladetime/pull/188","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/reichlab%2Fcladetime/issues/188","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/188/packages"}},{"old_version":"2024.10.3","new_version":"2025.8.25","update_type":"major","path":null,"pr_created_at":"2026-01-08T17:20:39.000Z","version_change":"2024.10.3 → 2025.8.25","issue":{"uuid":"3793728220","node_id":"PR_kwDOO_6LKs68KjBC","number":18,"state":"closed","title":"chore(deps): bump the poetry-dependencies group across 1 directory with 69 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-01T04:42:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-08T17:20:39.000Z","updated_at":"2026-02-01T04:42:39.000Z","time_to_close":2028118,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"poetry-dependencies","update_count":69,"packages":[{"name":"click","old_version":"8.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"matplotlib","old_version":"3.10.3","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"scipy","old_version":"1.16.0","new_version":"1.16.3","repository_url":"https://github.com/scipy/scipy"},{"name":"gmsh","old_version":"4.14.0","new_version":"4.15.0"},{"name":"pyvista","old_version":"0.46.2","new_version":"0.46.4","repository_url":"https://github.com/pyvista/pyvista"},{"name":"pypardiso","old_version":"0.4.6","new_version":"0.4.7","repository_url":"https://github.com/haasad/PyPardiso"},{"name":"pyside6","old_version":"6.9.2","new_version":"6.10.1"},{"name":"black","old_version":"25.1.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.9.1","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2024.8.6","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.16.1","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pre-commit-hooks","old_version":"5.0.0","new_version":"6.0.0","repository_url":"https://github.com/pre-commit/pre-commit-hooks"},{"name":"ruff","old_version":"0.12.0","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx","old_version":"8.1.3","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-autodoc-typehints","old_version":"3.0.1","new_version":"3.5.2","repository_url":"https://github.com/tox-dev/sphinx-autodoc-typehints"},{"name":"sphinx-click","old_version":"6.0.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"xdoctest","old_version":"1.2.0","new_version":"1.3.0","repository_url":"https://github.com/Erotemic/xdoctest"},{"name":"anyio","old_version":"4.9.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.3"},{"name":"certifi","old_version":"2025.6.15","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.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"contourpy","old_version":"1.3.2","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"filelock","old_version":"3.18.0","new_version":"3.20.2","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.58.4","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"identify","old_version":"2.6.12","new_version":"2.6.15","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":"intel-openmp","old_version":"2025.2.1","new_version":"2025.3.1"},{"name":"ipython","old_version":"8.37.0","new_version":"9.9.0","repository_url":"https://github.com/ipython/ipython"},{"name":"kiwisolver","old_version":"1.4.8","new_version":"1.4.9","repository_url":"https://github.com/nucleic/kiwi"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"mdit-py-plugins","old_version":"0.4.2","new_version":"0.5.0","repository_url":"https://github.com/executablebooks/mdit-py-plugins"},{"name":"mkl","old_version":"2025.2.0","new_version":"2025.3.0","repository_url":"https://github.com/uxlfoundation/oneMath"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pathspec","old_version":"0.12.1","new_version":"1.0.2","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"pillow","old_version":"11.2.1","new_version":"12.1.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"pyinstaller-hooks-contrib","old_version":"2025.10","new_version":"2025.11","repository_url":"https://github.com/pyinstaller/pyinstaller-hooks-contrib"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.3.1","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.1.0","new_version":"14.2.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.19.1"},{"name":"scooby","old_version":"0.10.1","new_version":"0.11.0","repository_url":"https://github.com/banesullivan/scooby"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.47.1","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"tbb","old_version":"2022.2.0","new_version":"2022.3.0","repository_url":"https://github.com/oneapi-src/oneTBB"},{"name":"tcmlib","old_version":"1.4.0","new_version":"1.4.1"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.34.3","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.31.2","new_version":"20.36.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"vtk","old_version":"9.5.0","new_version":"9.5.2"},{"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.13","new_version":"0.2.14","repository_url":"https://github.com/jquast/wcwidth"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 65 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.3` | `3.10.8` |\n| [scipy](https://github.com/scipy/scipy) | `1.16.0` | `1.16.3` |\n| [gmsh](https://gmsh.info) | `4.14.0` | `4.15.0` |\n| [pyvista](https://github.com/pyvista/pyvista) | `0.46.2` | `0.46.4` |\n| [pypardiso](https://github.com/haasad/PyPardiso) | `0.4.6` | `0.4.7` |\n| [pyside6](https://pyside.org) | `6.9.2` | `6.10.1` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.9.1` | `7.13.1` |\n| [furo](https://github.com/pradyunsg/furo) | `2024.8.6` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.16.1` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [pre-commit-hooks](https://github.com/pre-commit/pre-commit-hooks) | `5.0.0` | `6.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.0` | `0.14.10` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `9.0.2` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `8.1.3` | `8.2.3` |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-autodoc-typehints](https://github.com/tox-dev/sphinx-autodoc-typehints) | `3.0.1` | `3.5.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.0.0` | `6.2.0` |\n| [xdoctest](https://github.com/Erotemic/xdoctest) | `1.2.0` | `1.3.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.12.1` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `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.2` | `3.4.4` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.20.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.58.4` | `4.61.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.12` | `2.6.15` |\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| [intel-openmp](https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html) | `2025.2.1` | `2025.3.1` |\n| [ipython](https://github.com/ipython/ipython) | `8.37.0` | `9.9.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.8` | `1.4.9` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [mdit-py-plugins](https://github.com/executablebooks/mdit-py-plugins) | `0.4.2` | `0.5.0` |\n| [mkl](https://github.com/uxlfoundation/oneMath) | `2025.2.0` | `2025.3.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `0.12.1` | `1.0.2` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.1.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.5.1` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [pyinstaller-hooks-contrib](https://github.com/pyinstaller/pyinstaller-hooks-contrib) | `2025.10` | `2025.11` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.3.1` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rich](https://github.com/Textualize/rich) | `14.1.0` | `14.2.0` |\n| ruamel-yaml | `0.18.14` | `0.19.1` |\n| [scooby](https://github.com/banesullivan/scooby) | `0.10.1` | `0.11.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8.1` |\n| [starlette](https://github.com/Kludex/starlette) | `0.47.1` | `0.50.0` |\n| [tbb](https://github.com/oneapi-src/oneTBB) | `2022.2.0` | `2022.3.0` |\n| [tcmlib](https://oneapi-src.github.io/oneTBB/GSG/next_steps.html) | `1.4.0` | `1.4.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.3` | `0.40.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.31.2` | `20.36.0` |\n| [vtk](https://vtk.org) | `9.5.0` | `9.5.2` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n\n\nUpdates `click` from 8.2.1 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/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.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.3 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\u003ch2\u003eREL: v3.10.6\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eHighlights from this release include:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Fix regression of hi-dpi support for Qt\n- Fix race condition in TexManager.make_dvi \u0026amp; make_png\n- Various documentation and other bugfixes\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eREL: v3.10.5\u003c/h2\u003e\n\u003cp\u003eThis is the fourth bugfix release of the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eIncluded in this release is distributed wheels for Python 3.14 (including freethreaded) and Windows ARM.\u003c/p\u003e\n\u003cp\u003eThere are also several smaller bugfixes.\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.3...v3.10.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scipy` from 1.16.0 to 1.16.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scipy/scipy/releases\"\u003escipy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eSciPy 1.16.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.16.3\u003c/code\u003e is a bug-fix release with no new features compared to \u003ccode\u003e1.16.2\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eAuthors\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eName (commits)\u003c/li\u003e\n\u003cli\u003eChrisAB (1) +\u003c/li\u003e\n\u003cli\u003eLucas Colley (1)\u003c/li\u003e\n\u003cli\u003eRalf Gommers (3)\u003c/li\u003e\n\u003cli\u003eMatt Haberland (8)\u003c/li\u003e\n\u003cli\u003eNick ODell (2)\u003c/li\u003e\n\u003cli\u003eIlhan Polat (1)\u003c/li\u003e\n\u003cli\u003eTyler Reddy (28)\u003c/li\u003e\n\u003cli\u003eLucas Roberts (2)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA total of 8 people contributed to this release.\nPeople with a \u0026quot;+\u0026quot; by their names contributed a patch for the first time.\nThis list of names is automatically generated, and may not be fully complete.\u003c/p\u003e\n\u003cp\u003eThe full issue and pull request lists, and the release asset hashes are available\nin the associated \u003ccode\u003eREADME.txt\u003c/code\u003e file.\u003c/p\u003e\n\u003ch1\u003eSciPy 1.16.2 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.16.2\u003c/code\u003e is a bug-fix release with no new features\ncompared to \u003ccode\u003e1.16.1\u003c/code\u003e. This is the first stable release of\nSciPy to provide Windows on ARM wheels on PyPI.\u003c/p\u003e\n\u003ch1\u003eAuthors\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eName (commits)\u003c/li\u003e\n\u003cli\u003eDietrich Brunn (1)\u003c/li\u003e\n\u003cli\u003eRalf Gommers (6)\u003c/li\u003e\n\u003cli\u003eAdam Jones (1)\u003c/li\u003e\n\u003cli\u003eGleb Khmyznikov (1) +\u003c/li\u003e\n\u003cli\u003eJost Migenda (1) +\u003c/li\u003e\n\u003cli\u003enewyork_loki (1)\u003c/li\u003e\n\u003cli\u003eNick ODell (3)\u003c/li\u003e\n\u003cli\u003eDimitri Papadopoulos Orfanos (1)\u003c/li\u003e\n\u003cli\u003eIlhan Polat (2)\u003c/li\u003e\n\u003cli\u003eTyler Reddy (26)\u003c/li\u003e\n\u003cli\u003eMugunthan Selvanayagam (1) +\u003c/li\u003e\n\u003cli\u003eShuhei Watanabe (1) +\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA total of 12 people contributed to this release.\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/scipy/scipy/commit/b9105ccc2237f57acb1060202cd77f6dd264fb34\"\u003e\u003ccode\u003eb9105cc\u003c/code\u003e\u003c/a\u003e REL: 1.16.3 rel commit [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/4b7699ceb2e7070e732f9a7e24aab46683f41305\"\u003e\u003ccode\u003e4b7699c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/23805\"\u003e#23805\u003c/a\u003e from tylerjereddy/treddy_backports_1.16.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/874b75b11d09373c4e7b4fd12975f27d52af4714\"\u003e\u003ccode\u003e874b75b\u003c/code\u003e\u003c/a\u003e MAINT: PR 23805 wheel builds [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/de06a58d65ee0c0266ceb3adaca82c5405206bc4\"\u003e\u003ccode\u003ede06a58\u003c/code\u003e\u003c/a\u003e DOC: PR 23805 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/f642304717d140ede11bb095ee7cc5754e075d1d\"\u003e\u003ccode\u003ef642304\u003c/code\u003e\u003c/a\u003e TST: linalg.svd: skip on 32-bit due to limited memory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/df479083772fbfae5840c198f53ee938ffcd6dc6\"\u003e\u003ccode\u003edf47908\u003c/code\u003e\u003c/a\u003e CI: PR 23805 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/f5840635ec2ae1d3ff023159c5e58936e9a2303d\"\u003e\u003ccode\u003ef584063\u003c/code\u003e\u003c/a\u003e TST: stats.boxcox_llf: bump test tolerance for Accelerate (\u003ca href=\"https://redirect.github.com/scipy/scipy/issues/23864\"\u003e#23864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/fc60b2f449100a55bdb23777b6b5adc3cb38d61a\"\u003e\u003ccode\u003efc60b2f\u003c/code\u003e\u003c/a\u003e DOC: PR 23805 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/0dd12ec9b92338005959bde3611375ceea18f73a\"\u003e\u003ccode\u003e0dd12ec\u003c/code\u003e\u003c/a\u003e BLD: stats.multivariate_normal: silence pythran build warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/d3b1e625735c1e7c8e9963f5f7c2dd5755636f9d\"\u003e\u003ccode\u003ed3b1e62\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;BLD: stats.multivariate_normal: suppress pythran build warning\u0026quot;\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scipy/scipy/compare/v1.16.0...v1.16.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gmsh` from 4.14.0 to 4.15.0\n\nUpdates `pyvista` from 0.46.2 to 0.46.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyvista/pyvista/releases\"\u003epyvista's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.46.4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix obb tree cache (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/8039\"\u003e#8039\u003c/a\u003e) backport to v0.46 by \u003ca href=\"https://github.com/user27182\"\u003e\u003ccode\u003e@​user27182\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyvista/pyvista/pull/8041\"\u003epyvista/pyvista#8041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyvista/pyvista/compare/v0.46.3...v0.46.4\"\u003ehttps://github.com/pyvista/pyvista/compare/v0.46.3...v0.46.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.46.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003ePyVista \u003ccode\u003e0.46.0\u003c/code\u003e introduced a breaking change by requiring the use of \u003ccode\u003epyvista.set_new_attribute\u003c/code\u003e for setting new attributes (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/7716\"\u003e#7716\u003c/a\u003e). This patch release \u003ccode\u003e0.46.3\u003c/code\u003e relaxes this requirement by only requiring this for setting new \u003cem\u003epublic\u003c/em\u003e attributes. Private attributes (with a \u003ccode\u003e_\u003c/code\u003e prefix) can be set without the need to use \u003ccode\u003epyvista.set_new_attribute\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyvista/pyvista/compare/v0.46.2...v0.46.3\"\u003ehttps://github.com/pyvista/pyvista/compare/v0.46.2...v0.46.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyvista/pyvista/commit/eabebf9d2977ee0027d6f8e4d1c03ab39f03e8a9\"\u003e\u003ccode\u003eeabebf9\u003c/code\u003e\u003c/a\u003e Fix obb tree cache (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/8039\"\u003e#8039\u003c/a\u003e) backport to v0.46 (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/8041\"\u003e#8041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyvista/pyvista/commit/a6fa92498a9896bdba7d495b39273151c6e68cfa\"\u003e\u003ccode\u003ea6fa924\u003c/code\u003e\u003c/a\u003e Allow setting new private attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyvista/pyvista/commit/dfa05fe8c21b0f72516b8dd7e1695fce8633b000\"\u003e\u003ccode\u003edfa05fe\u003c/code\u003e\u003c/a\u003e Bump version to 0.46.3\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyvista/pyvista/compare/v0.46.2...v0.46.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypardiso` from 0.4.6 to 0.4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/haasad/PyPardiso/releases\"\u003epypardiso's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.7\u003c/h2\u003e\n\u003cp\u003e5 changes since v0.4.6\u003c/p\u003e\n\u003ch2\u003e🚧 Breaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for macOS (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/83\"\u003e#83\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix failing tests for pip installed scipy (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix type mismatch for sparse arrays (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/79\"\u003e#79\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📄 Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse a valid SPDX identifier as license classifier (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/81\"\u003e#81\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚚 CI and Packaging\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun tests for currently supported Python versions (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/84\"\u003e#84\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/haasad/PyPardiso/commit/d78ba0108c09a391b99567877be7a45aefc8beb4\"\u003e\u003ccode\u003ed78ba01\u003c/code\u003e\u003c/a\u003e Fix license configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/2b287ca57b1c9919ca927bc6eeb8a136badb9260\"\u003e\u003ccode\u003e2b287ca\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/79\"\u003e#79\u003c/a\u003e from urob/fix-type-mismatch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/04effe91176b7b2e3cf7a85be5fc97be4ec39450\"\u003e\u003ccode\u003e04effe9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/81\"\u003e#81\u003c/a\u003e from ecederstrand/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/405844b87dbbf111a77668088cac4d4900fef5ce\"\u003e\u003ccode\u003e405844b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/84\"\u003e#84\u003c/a\u003e from haasad/maint/python-versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/f5c7999884b5e8eb71e64ce39fb43f1ff8dd755a\"\u003e\u003ccode\u003ef5c7999\u003c/code\u003e\u003c/a\u003e Run tests for currently supported Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/d5eec2fdb417bb331ae5de2358ffbc691bb20cde\"\u003e\u003ccode\u003ed5eec2f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/83\"\u003e#83\u003c/a\u003e from haasad/breaking/remove-macos-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/c1da59caa1e53aa527aab261662087b2f7465ec6\"\u003e\u003ccode\u003ec1da59c\u003c/code\u003e\u003c/a\u003e Remove support for macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/53b301b48cadf086e0056c34fc6bf24a21566b35\"\u003e\u003ccode\u003e53b301b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/82\"\u003e#82\u003c/a\u003e from haasad/fix/scipy-error-groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/5a759de7aba8d91ed6e2d1b2585686deed12f4f0\"\u003e\u003ccode\u003e5a759de\u003c/code\u003e\u003c/a\u003e Update changelog config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/a3ec43e43b4110b4696f44b0cb7207441af7bf58\"\u003e\u003ccode\u003ea3ec43e\u003c/code\u003e\u003c/a\u003e Test for ValueError or TypeError\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/haasad/PyPardiso/compare/v0.4.6...v0.4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyside6` from 6.9.2 to 6.10.1\n\nUpdates `black` from 25.1.0 to 25.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\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\u003c!-- 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\u003e25.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.13.1\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.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\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\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/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.9.1...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2024.8.6 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\u003ch2\u003e2025.09.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epage.html: fix invalid HTML5 by \u003ca href=\"https://github.com/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/894\"\u003epradyunsg/furo#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebase.html: fix trailing slash on void elements by \u003ca href=\"https://github.com/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/895\"\u003epradyunsg/furo#895\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e_scaffold.sass: remove old scrollbar selectors by \u003ca href=\"https://github.com/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/892\"\u003epradyunsg/furo#892\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Blender to \u0026quot;used by\u0026quot; section by \u003ca href=\"https://github.com/struffel\"\u003e\u003ccode\u003e@​struffel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/898\"\u003epradyunsg/furo#898\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/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/894\"\u003epradyunsg/furo#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/struffel\"\u003e\u003ccode\u003e@​struffel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/898\"\u003epradyunsg/furo#898\u003c/a\u003e\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.07.19...2025.09.25\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.07.19...2025.09.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2025.07.19\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u0026quot;debug printf\u0026quot; for headerTop value by \u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/847\"\u003epradyunsg/furo#847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/826\"\u003epradyunsg/furo#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/861\"\u003epradyunsg/furo#861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/873\"\u003epradyunsg/furo#873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd rel=edit attribute to \u0026quot;Edit this page\u0026quot; link/icon by \u003ca href=\"https://github.com/capjamesg\"\u003e\u003ccode\u003e@​capjamesg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/880\"\u003epradyunsg/furo#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/879\"\u003epradyunsg/furo#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix flickering header drop shadow by \u003ca href=\"https://github.com/holesch\"\u003e\u003ccode\u003e@​holesch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/884\"\u003epradyunsg/furo#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake current page section detection resilient to sticky elements above header by \u003ca href=\"https://github.com/Eric-Arellano\"\u003e\u003ccode\u003e@​Eric-Arellano\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/664\"\u003epradyunsg/furo#664\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/capjamesg\"\u003e\u003ccode\u003e@​capjamesg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/880\"\u003epradyunsg/furo#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holesch\"\u003e\u003ccode\u003e@​holesch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/884\"\u003epradyunsg/furo#884\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2024.08.06...2025.07.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2024.08.06...2025.07.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\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/7c5f8fac52926f4854141cb5bf374c1681aedbec\"\u003e\u003ccode\u003e7c5f8fa\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.09.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/8bfdc54b2e8803450a2cb5dcab643a40b6934be2\"\u003e\u003ccode\u003e8bfdc54\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d92b62fee4cedd5b2ac1d267353d96541c9e0fb0\"\u003e\u003ccode\u003ed92b62f\u003c/code\u003e\u003c/a\u003e Switch the dark mode theme back to \u003ccode\u003enative\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/83c3446288014357bb8a7875bb81b664b7f15896\"\u003e\u003ccode\u003e83c3446\u003c/code\u003e\u003c/a\u003e Add Blender to \u0026quot;used by\u0026quot; section (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/898\"\u003e#898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/426ea05d879ee7dfdf74ba7c8b089f73081abbfd\"\u003e\u003ccode\u003e426ea05\u003c/code\u003e\u003c/a\u003e Remove old scrollbar selectors (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/892\"\u003e#892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d22d31c4b196a29092ac606737b6e9a7ae99273a\"\u003e\u003ccode\u003ed22d31c\u003c/code\u003e\u003c/a\u003e Remove trailing slash on void elements (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pradyunsg/furo/compare/2024.08.06...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.16.1 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.16.1...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.2.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\u003ch2\u003epre-commit v4.3.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.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...\n\n_Description has been truncated_","html_url":"https://github.com/DanBeranek/temperatureanalysis/pull/18","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanBeranek%2Ftemperatureanalysis/issues/18","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/18/packages"}},{"old_version":"2024.10.3","new_version":"2025.8.25","update_type":"major","path":null,"pr_created_at":"2026-01-05T23:20:42.000Z","version_change":"2024.10.3 → 2025.8.25","issue":{"uuid":"3783160396","node_id":"PR_kwDOOSUfDM67noj9","number":109,"state":"open","title":"Bump sphinx-autobuild from 2024.10.3 to 2025.8.25","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-05T23:20:42.000Z","updated_at":"2026-01-05T23:20:56.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) from 2024.10.3 to 2025.8.25.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\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=sphinx-autobuild\u0026package-manager=pip\u0026previous-version=2024.10.3\u0026new-version=2025.8.25)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/crate/cratedb-mcp/pull/109","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/crate%2Fcratedb-mcp/issues/109","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/109/packages"}},{"old_version":"==2024.10.*","new_version":"==2025.8.*","update_type":null,"path":null,"pr_created_at":"2026-01-05T21:12:08.000Z","version_change":"==2024.10.* → ==2025.8.*","issue":{"uuid":"3782875779","node_id":"PR_kwDOBVeD0c67mstt","number":503,"state":"closed","title":"Update sphinx-autobuild requirement from ==2024.10.* to ==2025.8.*","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-14T11:06:26.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-05T21:12:08.000Z","updated_at":"2026-01-14T11:06:28.000Z","time_to_close":741258,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"sphinx-autobuild","old_version":"==2024.10.*","new_version":"==2025.8.*","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/86e2f373802417c944fda6c2930c8c3c98c20218\"\u003e\u003ccode\u003e86e2f37\u003c/code\u003e\u003c/a\u003e Release 2024.10.03\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.02...2025.08.25\"\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 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/common-workflow-language/user_guide/pull/503","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/common-workflow-language%2Fuser_guide/issues/503","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/503/packages"}},{"old_version":"2024.10.3","new_version":"2025.8.25","update_type":"major","path":null,"pr_created_at":"2026-01-05T18:40:55.000Z","version_change":"2024.10.3 → 2025.8.25","issue":{"uuid":"3782509929","node_id":"PR_kwDOJ3hC9s67lfhi","number":38,"state":"closed","title":"Bump sphinx-autobuild from 2024.10.3 to 2025.8.25","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-12T07:32:58.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-05T18:40:55.000Z","updated_at":"2026-01-12T07:33:00.000Z","time_to_close":564723,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) from 2024.10.3 to 2025.8.25.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\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=sphinx-autobuild\u0026package-manager=pip\u0026previous-version=2024.10.3\u0026new-version=2025.8.25)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/valberg/django-registries/pull/38","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/valberg%2Fdjango-registries/issues/38","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/38/packages"}},{"old_version":"==2024.10.*","new_version":"==2025.8.*","update_type":null,"path":null,"pr_created_at":"2026-01-05T18:23:53.000Z","version_change":"==2024.10.* → ==2025.8.*","issue":{"uuid":"3782468642","node_id":"PR_kwDONOBvIM67lW2I","number":254,"state":"closed","title":"Update sphinx-autobuild requirement from ==2024.10.* to ==2025.8.*","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-02-17T15:03:05.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-05T18:23:53.000Z","updated_at":"2026-02-17T15:03:21.000Z","time_to_close":3703152,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"sphinx-autobuild","old_version":"==2024.10.*","new_version":"==2025.8.*","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/86e2f373802417c944fda6c2930c8c3c98c20218\"\u003e\u003ccode\u003e86e2f37\u003c/code\u003e\u003c/a\u003e Release 2024.10.03\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.02...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nYou can trigger a rebase of this PR by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/BSC-ES/autosubmit-api/pull/254","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/BSC-ES%2Fautosubmit-api/issues/254","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/254/packages"}},{"old_version":"2024.10.3","new_version":"2025.8.25","update_type":"major","path":null,"pr_created_at":"2026-01-01T02:17:54.000Z","version_change":"2024.10.3 → 2025.8.25","issue":{"uuid":"3774027573","node_id":"PR_kwDOOpylys67K2JX","number":17,"state":"open","title":"deps(poetry): bump the poetry-deps group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["Jekwwer"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-01T02:17:54.000Z","updated_at":"2026-01-01T02:19:27.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(poetry): bump","group_name":"poetry-deps","update_count":11,"packages":[{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.2.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-xdist","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"ruff","old_version":"0.11.13","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.16.1","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"sphinx","old_version":"8.2.3","new_version":"9.1.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-autoapi","old_version":"3.6.0","new_version":"3.6.1","repository_url":"https://github.com/readthedocs/sphinx-autoapi"},{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-deps group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `9.0.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.2.1` | `7.0.0` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.7.0` | `3.8.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.13` | `0.14.10` |\n| [mypy](https://github.com/python/mypy) | `1.16.1` | `1.19.1` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `8.2.3` | `9.1.0` |\n| [sphinx-autoapi](https://github.com/readthedocs/sphinx-autoapi) | `3.6.0` | `3.6.1` |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n\n\nUpdates `pre-commit` from 4.2.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\u003ch2\u003epre-commit v4.3.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.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\u003ch1\u003e4.3.0 - 2025-08-09\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/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.2.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 `pytest` from 8.4.1 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.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 6.2.1 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for subprocesses measurement.\u003c/p\u003e\n\u003cp\u003eIt was a feature added long time ago when coverage lacked a nice way to measure subprocesses created in tests.\nIt relied on a \u003ccode\u003e.pth\u003c/code\u003e file, there was no way to opt-out and it created bad interations\nwith \u003ccode\u003ecoverage's new patch system \u0026lt;https://coverage.readthedocs.io/en/latest/config.html#run-patch\u0026gt;\u003c/code\u003e_ added\nin \u003ccode\u003e7.10 \u0026lt;https://coverage.readthedocs.io/en/7.10.6/changes.html#version-7-10-0-2025-07-24\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eTo migrate to this release you might need to enable the suprocess patch, example for \u003ccode\u003e.coveragerc\u003c/code\u003e:\u003c/p\u003e\n\u003cp\u003e.. code-block:: ini\u003c/p\u003e\n\u003cp\u003e[run]\npatch = subprocess\u003c/p\u003e\n\u003cp\u003eThis release also requires at least coverage 7.10.6.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched packaging to have metadata completely in \u003ccode\u003epyproject.toml\u003c/code\u003e and use \u003ccode\u003ehatchling \u0026lt;https://pypi.org/project/hatchling/\u0026gt;\u003c/code\u003e_ for\nbuilding.\nContributed by Ofek Lev in \u003ccode\u003e[#551](https://github.com/pytest-dev/pytest-cov/issues/551) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/551\u0026gt;\u003c/code\u003e_\nwith some extras in \u003ccode\u003e[#716](https://github.com/pytest-dev/pytest-cov/issues/716) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/716\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved some not really necessary testing deps like \u003ccode\u003esix\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.3.0 (2025-09-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for markdown reports.\nContributed by Marcos Boger in \u003ccode\u003e[#712](https://github.com/pytest-dev/pytest-cov/issues/712) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/712\u0026gt;\u003c/code\u003e_\nand \u003ccode\u003e[#714](https://github.com/pytest-dev/pytest-cov/issues/714) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/714\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed some formatting issues in docs.\nAnonymous contribution in \u003ccode\u003e[#706](https://github.com/pytest-dev/pytest-cov/issues/706) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/706\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/pytest-dev/pytest-cov/commit/224d8964caad90074a8cf6dc8720b8f70f31629b\"\u003e\u003ccode\u003e224d896\u003c/code\u003e\u003c/a\u003e Bump version: 6.3.0 → 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/73424e3999f865eac72e27f09d5fe11b9703cfd6\"\u003e\u003ccode\u003e73424e3\u003c/code\u003e\u003c/a\u003e Cleanup the docs a bit.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/36f1cc2967831dbd4c8aa70086fc86dc495f8b9a\"\u003e\u003ccode\u003e36f1cc2\u003c/code\u003e\u003c/a\u003e Bump pins in template.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f299c590a63a48e51e3ae949993dc7bb1f1d480d\"\u003e\u003ccode\u003ef299c59\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/25f0b2e0cdbc345c0d3e49170f7a328c3e0d805f\"\u003e\u003ccode\u003e25f0b2e\u003c/code\u003e\u003c/a\u003e Update docs/config.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/bb23eacc5531fb8f499213d8420407e0d72f88e3\"\u003e\u003ccode\u003ebb23eac\u003c/code\u003e\u003c/a\u003e Improve configuration docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/a19531e91e1ab753ccf648a2d9bab08a6fddebb9\"\u003e\u003ccode\u003ea19531e\u003c/code\u003e\u003c/a\u003e Switch from build/pre-commit to uv/prek - this should make this faster.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/82f999391073f2fb8ae422af452602f310086a2a\"\u003e\u003ccode\u003e82f9993\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/211b5cd41c29916bc643b4a11b00578ba4fd6fe8\"\u003e\u003ccode\u003e211b5cd\u003c/code\u003e\u003c/a\u003e Fix links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/97aadd74bcbc00a2078d240e8fe871dd62b83d80\"\u003e\u003ccode\u003e97aadd7\u003c/code\u003e\u003c/a\u003e Update some ci config, reformat and apply some lint fixes.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.2.1...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-xdist` from 3.7.0 to 3.8.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst\"\u003epytest-xdist's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003epytest-xdist 3.8.0 (2025-06-30)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#1083](https://github.com/pytest-dev/pytest-xdist/issues/1083) \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/1083\u0026gt;\u003c/code\u003e_: Add \u003ccode\u003e--no-loadscope-reorder\u003c/code\u003e and \u003ccode\u003e--loadscope-reorder\u003c/code\u003e option to control whether to automatically reorder tests in loadscope for tests where relative ordering matters. This only applies when using \u003ccode\u003eloadscope\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eFor example, [test_file_1, test_file_2, ..., test_file_n] are given as input test files, if \u003ccode\u003e--no-loadscope-reorder\u003c/code\u003e is used, for either worker, the \u003ccode\u003etest_file_a\u003c/code\u003e will be executed before \u003ccode\u003etest_file_b\u003c/code\u003e only if \u003ccode\u003ea \u0026lt; b\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe default behavior is to reorder the tests to maximize the number of tests that can be executed in parallel.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/1e3e4dc16523c8a8f6c67d95a950166420718c99\"\u003e\u003ccode\u003e1e3e4dc\u003c/code\u003e\u003c/a\u003e Release 3.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/600aad575a4e4382855145b0c464d51b8f0b7242\"\u003e\u003ccode\u003e600aad5\u003c/code\u003e\u003c/a\u003e Ensure all xdist group names are strings (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1216\"\u003e#1216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/9d7ba5b5fbbbe26793fbfb7cb1903eb69425cf09\"\u003e\u003ccode\u003e9d7ba5b\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--no-loadscope-reorder\u003c/code\u003e and \u003ccode\u003e--loadscope-reorder\u003c/code\u003e options (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1217\"\u003e#1217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/532f07fb181bb1546eda79bbe6b46bdb56c699e1\"\u003e\u003ccode\u003e532f07f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1210\"\u003e#1210\u003c/a\u003e from pytest-dev/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/0883ad085e0cf039c8ae13eb2789c1076544d225\"\u003e\u003ccode\u003e0883ad0\u003c/code\u003e\u003c/a\u003e Fix Path usage in \u003ccode\u003etest_rsync_roots_no_roots\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/58a51bc14015d211761e44c2bdacab09c3893668\"\u003e\u003ccode\u003e58a51bc\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/59a2ad0150697b9ff837f3ae8dcf6e074d5a114b\"\u003e\u003ccode\u003e59a2ad0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1220\"\u003e#1220\u003c/a\u003e from pytest-dev/dependabot/github_actions/github-act...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/d42b9c72044855236c68286ca3bdb34486a05872\"\u003e\u003ccode\u003ed42b9c7\u003c/code\u003e\u003c/a\u003e build(deps): bump hynek/build-and-inspect-python-package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/ebfcb99072aed3503fda5175245f28895a0204bb\"\u003e\u003ccode\u003eebfcb99\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1206\"\u003e#1206\u003c/a\u003e from pytest-dev/release-3.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/23b7fd6054298a530b02b33d07007b3082a36277\"\u003e\u003ccode\u003e23b7fd6\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1207\"\u003e#1207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-xdist/compare/v3.7.0...v3.8.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.9.1 to 7.13.1\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.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\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\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/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.9.1...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.11.13 to 0.14.10\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.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\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] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\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/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\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/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\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\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\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.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\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] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\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/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\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/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\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\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.9\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/astral-sh/ruff/commit/45bbb4cbffe73cf925d4579c2e3eb413e0539390\"\u003e\u003ccode\u003e45bbb4c\u003c/code\u003e\u003c/a\u003e Bump 0.14.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22058\"\u003e#22058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42b972753aa9737140d3c715dc1fa2a4d20eba02\"\u003e\u003ccode\u003e42b9727\u003c/code\u003e\u003c/a\u003e [ty] Use datatest instead of dirtest (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21937\"\u003e#21937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f7ec1784005ba8659203155dc0c195f746f8b45b\"\u003e\u003ccode\u003ef7ec178\u003c/code\u003e\u003c/a\u003e [ty] Gracefully handle client requests that can't be deserialized (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22051\"\u003e#22051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c31516473296a8b745af946b827d3342ef81060f\"\u003e\u003ccode\u003ec315164\u003c/code\u003e\u003c/a\u003e [ty] Don't suggest keyword statements when only expressions are valid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb1955e98c5bd35a322f58fcab5d68aab255a7a4\"\u003e\u003ccode\u003ebb1955e\u003c/code\u003e\u003c/a\u003e [ty] Use cursor context in a few more places...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/070e08a043f47845f60632b528ef27cc37078405\"\u003e\u003ccode\u003e070e08a\u003c/code\u003e\u003c/a\u003e [ty] Move \u003ccode\u003ecompletion\u003c/code\u003e function to the top\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bab3924833c9f432776f93d4ed83b6cfbafc20e3\"\u003e\u003ccode\u003ebab3924\u003c/code\u003e\u003c/a\u003e [ty] Refactor completion generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10748b2fdb021e4d8e548f09e8e182c69d7c1f5a\"\u003e\u003ccode\u003e10748b2\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/56539db5206c519d80446d96155ef832689c5a6e\"\u003e\u003ccode\u003e56539db\u003c/code\u003e\u003c/a\u003e [ty] Fix some configuration panics in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22040\"\u003e#22040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8d32ad1cab7b78675e8fe56740013d61e315142c\"\u003e\u003ccode\u003e8d32ad1\u003c/code\u003e\u003c/a\u003e [ty] Add support for attribute docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22036\"\u003e#22036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.11.13...0.14.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.16.1 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.16.1...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx` from 8.2.3 to 9.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx/releases\"\u003esphinx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSphinx 9.1.0\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14153\"\u003e#14153\u003c/a\u003e: Drop Python 3.11 support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/12555\"\u003e#12555\u003c/a\u003e: Drop Docutils 0.20 support.\nPatch by Adam Turner\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eadd_static_dir()\u003c/code\u003e for copying static\nassets from extensions to the build output.\nPatch by Jared Dillard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14189\"\u003e#14189\u003c/a\u003e: autodoc: Fix duplicate \u003ccode\u003e:no-index-entry:\u003c/code\u003e for modules.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13713\"\u003e#13713\u003c/a\u003e: Fix compatibility with MyST-Parser.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eFix tests for Python 3.15.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Fix default option parsing.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eRemove incorrect static typing assertions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14050\"\u003e#14050\u003c/a\u003e: LaTeXTranslator fails to build documents using the \u0026quot;acronym\u0026quot;\nstandard role.\nPatch by Günter Milde\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix rendering for grid filled merged vertical cell.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14228\"\u003e#14228\u003c/a\u003e: LaTeX: Fix overrun footer for cases of merged vertical table cells.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14207\"\u003e#14207\u003c/a\u003e: Fix creating \u003ccode\u003eHTMLThemeFactory\u003c/code\u003e objects in third-party extensions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/3099\"\u003e#3099\u003c/a\u003e: LaTeX: PDF build crashes if a code-block contains more than\ncirca 1350 codelines (about 27 a4-sized pages at default pointsize).\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14064\"\u003e#14064\u003c/a\u003e: LaTeX: TABs ending up in sphinxVerbatim fail to obey tab stops.\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Improve support for non-weakreferencable objects.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix accidental removal at \u003ccode\u003e3.5.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/8854\"\u003e#8854\u003c/a\u003e) of the documentation of\n\u003ccode\u003eliteralblockcappos\u003c/code\u003e key of  sphinxsetup.\nPatch by Jean-François B.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/sphinx-doc/sphinx/blob/master/CHANGES.rst\"\u003esphinx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 9.1.0 (released Dec 31, 2025)\u003c/h1\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14153\"\u003e#14153\u003c/a\u003e: Drop Python 3.11 support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/12555\"\u003e#12555\u003c/a\u003e: Drop Docutils 0.20 support.\nPatch by Adam Turner\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :meth:\u003ccode\u003e~sphinx.application.Sphinx.add_static_dir\u003c/code\u003e for copying static\nassets from extensions to the build output.\nPatch by Jared Dillard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14189\"\u003e#14189\u003c/a\u003e: autodoc: Fix duplicate \u003ccode\u003e:no-index-entry:\u003c/code\u003e for modules.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13713\"\u003e#13713\u003c/a\u003e: Fix compatibility with MyST-Parser.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eFix tests for Python 3.15.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Fix default option parsing.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eRemove incorrect static typing assertions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14050\"\u003e#14050\u003c/a\u003e: LaTeXTranslator fails to build documents using the \u0026quot;acronym\u0026quot;\nstandard role.\nPatch by Günter Milde\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix rendering for grid filled merged vertical cell.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14228\"\u003e#14228\u003c/a\u003e: LaTeX: Fix overrun footer for cases of merged vertical table cells.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14207\"\u003e#14207\u003c/a\u003e: Fix creating \u003ccode\u003eHTMLThemeFactory\u003c/code\u003e objects in third-party extensions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/3099\"\u003e#3099\u003c/a\u003e: LaTeX: PDF build crashes if a code-block contains more than\ncirca 1350 codelines (about 27 a4-sized pages at default pointsize).\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14064\"\u003e#14064\u003c/a\u003e: LaTeX: TABs ending up in sphinxVerbatim fail to obey tab stops.\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Improve support for non-weakreferencable objects.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix accidental removal at \u003ccode\u003e3.5.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/8854\"\u003e#8854\u003c/a\u003e) of the documentation of\n\u003ccode\u003eliteralblockcappos\u003c/code\u003e key of  :ref:\u003ccode\u003e'sphinxsetup' \u0026lt;latexsphinxsetup\u0026gt;\u003c/code\u003e.\nPatch by Jean-François B.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/cc7c6f435ad37bb12264f8118c8461b230e6830c\"\u003e\u003ccode\u003ecc7c6f4\u003c/code\u003e\u003c/a\u003e Bump to 9.1.0 final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/b127b9478aa4654a82eeadf1a1e89715d3927608\"\u003e\u003ccode\u003eb127b94\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eapp.add_static_dir()\u003c/code\u003e for copying extension static files (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14219\"\u003e#14219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/20f1c46790d370b50fa7396cca3e1cc658ce9f89\"\u003e\u003ccode\u003e20f1c46\u003c/code\u003e\u003c/a\u003e LaTeX: Inhibit breaks for rows with merged vertical cells (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14227\"\u003e#14227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/3c85411fd06a1c3026f7991818312e5358ef52e5\"\u003e\u003ccode\u003e3c85411\u003c/code\u003e\u003c/a\u003e Polish CHANGES.rst (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14225\"\u003e#14225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/9ee5446c6cfb997a6b92f5cfb84d045ec947417a\"\u003e\u003ccode\u003e9ee5446\u003c/code\u003e\u003c/a\u003e LaTeX: restore 1.7 documentation of literalblockcappos (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14224\"\u003e#14224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/d75d602005be7567abc7741ee777f6f8c302d827\"\u003e\u003ccode\u003ed75d602\u003c/code\u003e\u003c/a\u003e LaTeX: improve (again...) some code comments in time for 9.1.0 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14222\"\u003e#14222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/8dca61d69a4a05c56702980e4f6cbe6451dd9ebc\"\u003e\u003ccode\u003e8dca61d\u003c/code\u003e\u003c/a\u003e Improve some LaTeX code comments (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14220\"\u003e#14220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/8ab960098a8e12b8893bd3ceafc394759118346b\"\u003e\u003ccode\u003e8ab9600\u003c/code\u003e\u003c/a\u003e Bump to 9.1.0 candidate 2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/d59b2375945ed04414a11b0adb3e5655525f3e9e\"\u003e\u003ccode\u003ed59b237\u003c/code\u003e\u003c/a\u003e autodoc: Improve support for non-weakreferencable objects\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/964424b3dbc92ed1718272fd45123878f3eec14d\"\u003e\u003ccode\u003e964424b\u003c/code\u003e\u003c/a\u003e Use the correct reference for using existing extensions (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14157\"\u003e#14157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx/compare/v8.2.3...v9.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autoapi` from 3.6.0 to 3.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/releases\"\u003esphinx-autoapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.6.1\u003c/h2\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate the supported versions of astroid. Fix the breaking change to Import and pass in the AstroidManager to the AstroidBuilder (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/536\"\u003e#536\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/readthedocs/sphinx-autoapi/blob/main/CHANGELOG.rst\"\u003esphinx-autoapi's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.6.1 (2025-10-06)\u003c/h2\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate the supported versions of astroid.\nFix the breaking change to Import and pass in the AstroidManager to the AstroidBuilder (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/536\"\u003e#536\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/readthedocs/sphinx-autoapi/commit/0b4509e2726352ed6eb34822e6429e7090139240\"\u003e\u003ccode\u003e0b4509e\u003c/code\u003e\u003c/a\u003e Version 3.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/21a53c742928fa89e63b39008585be4c66b3ee3d\"\u003e\u003ccode\u003e21a53c7\u003c/code\u003e\u003c/a\u003e Fix change in astroid api (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/4433b175acd31405ffd5ee0aa154171a0fbd9a3b\"\u003e\u003ccode\u003e4433b17\u003c/code\u003e\u003c/a\u003e Bump sigstore/gh-action-sigstore-python in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/ef3295f973f52491d2459ac54cd5a9fa8bae4cec\"\u003e\u003ccode\u003eef3295f\u003c/code\u003e\u003c/a\u003e fix: add a footer icon for github\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/compare/v3.6.0...v3.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-rtd-theme` from 3.0.2 to 3.1.0rc1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst\"\u003esphinx-rtd-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.0rc1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.0.2:\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/readthedocs/sphinx_rtd_theme/commit/20733c3bcc60df8eda23512a0f3ccb2861486110\"\u003e\u003ccode\u003e20733c3\u003c/code\u003e\u003c/a\u003e Add support for Sphinx 9.0.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1666\"\u003e#1666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/71aacd35048c8bc2ab646ed4e3e9af1075034387\"\u003e\u003ccode\u003e71aacd3\u003c/code\u003e\u003c/a\u003e Update Code of Conduct URL (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1664\"\u003e#1664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/5a263753d52c1628c88392fbf52c729f5a8e79b5\"\u003e\u003ccode\u003e5a26375\u003c/code\u003e\u003c/a\u003e Run tests and build docs with Sphinx 8.2 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1640\"\u003e#1640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/8d4d394dad2d55cf9a4db880effac6aa5c7b12e6\"\u003e\u003ccode\u003e8d4d394\u003c/code\u003e\u003c/a\u003e Sidebar should not be floating on mobile (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1622\"\u003e#1622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/compare/3.0.2...3.1.0rc1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autobuild` from 2024.10.3 to 2025.8.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\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/Jekwwer/python-workspace/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jekwwer%2Fpython-workspace/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"}},{"old_version":"2024.10.3","new_version":"2025.8.25","update_type":"major","path":null,"pr_created_at":"2025-12-22T21:07:37.000Z","version_change":"2024.10.3 → 2025.8.25","issue":{"uuid":"3755216092","node_id":"PR_kwDOH4hehs66N6fx","number":281,"state":"closed","title":"Bump the dependencies group across 1 directory with 14 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-13T02:02:04.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T21:07:37.000Z","updated_at":"2026-01-13T02:02:06.000Z","time_to_close":1832067,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":14,"packages":[{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"anyio","old_version":"4.9.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"roman-numerals-py","old_version":"3.1.0","new_version":"4.1.0","repository_url":"https://github.com/AA-Turner/roman-numerals"},{"name":"starlette","old_version":"0.49.1","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.6.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.34.3","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 14 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.12.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.11.12` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [roman-numerals-py](https://github.com/AA-Turner/roman-numerals) | `3.1.0` | `4.1.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.1` | `0.50.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.0` | `2.6.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.3` | `0.40.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n\n\nUpdates `sphinx-autobuild` from 2024.10.3 to 2025.8.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\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/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild'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\u003eSet \u003ccode\u003eCache-Control\u003c/code\u003e header to \u003ccode\u003eno-cache\u003c/code\u003e for served files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.9.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\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003eCancelScope.cancel()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by passing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to \u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e keyword argument (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically handle all async tests (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/857\"\u003e#857\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously raised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise \u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but \u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this scenario. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing users to inject data directly into the buffer\u003c/li\u003e\n\u003cli\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects\u003c/li\u003e\n\u003cli\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and \u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context managers, particularly cancel scopes or task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/905\"\u003e#905\u003c/a\u003e; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/818\"\u003e#818\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e and \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things, this prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/896\"\u003e#896\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIncorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)\u003c/li\u003e\n\u003cli\u003eAdded a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ccode\u003eto_interpreters\u003c/code\u003e module to use the public \u003ccode\u003econcurrent.interpreters\u003c/code\u003e API on Python 3.14 or later\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path.copy()\u003c/code\u003e and \u003ccode\u003eanyio.Path.copy_into()\u003c/code\u003e failing on Python 3.14.0a7\u003c/li\u003e\n\u003cli\u003eFixed return annotation of \u003ccode\u003e__aexit__\u003c/code\u003e on async context managers. CMs which can suppress exceptions should return \u003ccode\u003ebool\u003c/code\u003e, or \u003ccode\u003eNone\u003c/code\u003e otherwise. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/913\"\u003e#913\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Enegg\"\u003e\u003ccode\u003e@​Enegg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed rollover boundary check in \u003ccode\u003eSpooledTemporaryFile\u003c/code\u003e so that rollover only occurs when the buffer size exceeds \u003ccode\u003emax_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/915\"\u003e#915\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrated testing and documentation dependencies from extras to dependency groups\u003c/li\u003e\n\u003cli\u003eFixed compatibility of \u003ccode\u003eanyio.to_interpreter\u003c/code\u003e with Python 3.14.0b2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/926\"\u003e#926\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSyntaxWarning\u003c/code\u003e on Python 3.14 about \u003ccode\u003ereturn\u003c/code\u003e in \u003ccode\u003efinally\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/816\"\u003e#816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed RunVar name conflicts. RunVar instances with the same name should not share storage (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/880\"\u003e#880\u003c/a\u003e; PR by \u003ca href=\"https://github.com/vimfu\"\u003e\u003ccode\u003e@​vimfu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRenamed the \u003ccode\u003eBrokenWorkerIntepreter\u003c/code\u003e exception to \u003ccode\u003eBrokenWorkerInterpreter\u003c/code\u003e. The old name is available as a deprecated alias. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/938\"\u003e#938\u003c/a\u003e; PR by \u003ca href=\"https://github.com/ayussh-verma\"\u003e\u003ccode\u003e@​ayussh-verma\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/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.9.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 `certifi` from 2025.6.15 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"\u003e\u003ccode\u003e37ea150\u003c/code\u003e\u003c/a\u003e 2025.11.12 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"\u003e\u003ccode\u003e2fa50bb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.2 to 5.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"\u003e\u003ccode\u003e6cadb53\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fb14ac49a976b1695d84b1ac1307276a20b3aac9\"\u003e\u003ccode\u003efb14ac4\u003c/code\u003e\u003c/a\u003e 2025.10.05 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2c7c7ee6b76a118191b685a4cc028d4241f22eb7\"\u003e\u003ccode\u003e2c7c7ee\u003c/code\u003e\u003c/a\u003e Add Python 3.14 classifier in setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1a5cb7b3771bba256755f88b3dcf3ac13f064622\"\u003e\u003ccode\u003e1a5cb7b\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/dea59605ef2b266c2e0e67938e8c8535a04b1211\"\u003e\u003ccode\u003edea5960\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/83566b7c993eef772facdaff59c7bba105675329\"\u003e\u003ccode\u003e83566b7\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/certifi/python-certifi/commit/ca2e121bdb304fd01f802d3b1ee6a65684f569f2\"\u003e\u003ccode\u003eca2e121\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.3.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.2.1 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/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.10 to 3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\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.4 to 2.32.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `roman-numerals-py` from 3.1.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AA-Turner/roman-numerals/releases\"\u003eroman-numerals-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.1.0\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.0.0\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/AA-Turner/roman-numerals/blob/master/CHANGES.rst\"\u003eroman-numerals-py's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.1.0 (released 17 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003eAdd some debug assertions for unsafe blocks\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.0.0 (released 16 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRename Python package to \u003ccode\u003eroman-numerals\u003c/code\u003e on PyPI.\u003c/li\u003e\n\u003cli\u003ePublish \u003ccode\u003eroman-numerals-py\u003c/code\u003e as a meta-package that depends\non \u003ccode\u003eroman-numerals\u003c/code\u003e and installs no modules.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eIncrease the minimum supported Rust version (MSRV) to 1.81.0.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::error::Error\u003c/code\u003e trait for all error types.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::fmt\u003c/code\u003e traits in \u003ccode\u003eno-std\u003c/code\u003e mode.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eFrom\u0026lt;RomanNumeral\u0026gt;\u003c/code\u003e for most integer types.\u003c/li\u003e\n\u003cli\u003ePublish the \u003ccode\u003eroman-numerals-rs\u003c/code\u003e crate using \u003ccode\u003eTrusted Publishing \u0026lt;https://crates.io/docs/trusted-publishing\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/AA-Turner/roman-numerals/commit/53c9c4eac63b91728fba3c26329163ee57654d21\"\u003e\u003ccode\u003e53c9c4e\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a3793b83fab7064107ac56a482a6fa93bc9c5048\"\u003e\u003ccode\u003ea3793b8\u003c/code\u003e\u003c/a\u003e Add more SAFETY notes and debug assertions to unsafe blocks (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/106\"\u003e#106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/46d346e2d08b634856c79783e404616b65626ba7\"\u003e\u003ccode\u003e46d346e\u003c/code\u003e\u003c/a\u003e Adjust annotations in light of PEP 649\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/b8fae405d948415f7397ae4f64569c53cb623105\"\u003e\u003ccode\u003eb8fae40\u003c/code\u003e\u003c/a\u003e Adjust an example in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a88464130711ad5e8d56e6ff747d17068ae17534\"\u003e\u003ccode\u003ea884641\u003c/code\u003e\u003c/a\u003e Restore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c3e1b6b4e6e02e5e19c26dc6f72bbb7b1060cca5\"\u003e\u003ccode\u003ec3e1b6b\u003c/code\u003e\u003c/a\u003e Release v4.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c335cb63ed97e684a4e9453639bfc7e9f487bb41\"\u003e\u003ccode\u003ec335cb6\u003c/code\u003e\u003c/a\u003e Add publishing step for the \u003ccode\u003eroman-numerals-py\u003c/code\u003e meta-package (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/105\"\u003e#105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/649f6e62e7bd24123d7dd489609ae47168aaeb1b\"\u003e\u003ccode\u003e649f6e6\u003c/code\u003e\u003c/a\u003e Add Trusted Publishing workflow for crates.io (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/104\"\u003e#104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/ffa4dd1b33eae62f1bd1d44549e10a528b8f1f58\"\u003e\u003ccode\u003effa4dd1\u003c/code\u003e\u003c/a\u003e rust: Refactor tests (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/26b41561c1d9813104548777b5ed9622d7125b38\"\u003e\u003ccode\u003e26b4156\u003c/code\u003e\u003c/a\u003e Simplify ASCII detection closures (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AA-Turner/roman-numerals/compare/v3.1.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.49.1 to 0.50.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.50.0\u003c/h2\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.3...0.50.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.3...0.50.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.3\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3059\"\u003e#3059\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.2...0.49.3\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.2...0.49.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.2\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore \u003ccode\u003eif-modified-since\u003c/code\u003e header if \u003ccode\u003eif-none-match\u003c/code\u003e is present in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3044\"\u003e#3044\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.49.2\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.1...0.49.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.50.0 (November 1, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.3 (November 1, 2025)\u003c/h2\u003e\n\u003cp\u003eThis is the last release that supports Python 3.9, which will be dropped in the next minor release.\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRelax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3059\"\u003e#3059\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.2 (November 1, 2025)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore \u003ccode\u003eif-modified-since\u003c/code\u003e header if \u003ccode\u003eif-none-match\u003c/code\u003e is present in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3044\"\u003e#3044\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4941b4a04993d087dea66e9287fe9472babee879\"\u003e\u003ccode\u003e4941b4a\u003c/code\u003e\u003c/a\u003e Version 0.50.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a0499f60a6f13b8b42381d70bafc076b6ece4eee\"\u003e\u003ccode\u003ea0499f6\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3061\"\u003e#3061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/de3ffecaeadd34612f71495374f5853edbda1bf2\"\u003e\u003ccode\u003ede3ffec\u003c/code\u003e\u003c/a\u003e Version 0.49.3 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3062\"\u003e#3062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/c4433960ccc07289e0963df94dc5c2746f07ca1a\"\u003e\u003ccode\u003ec443396\u003c/code\u003e\u003c/a\u003e Relax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3059\"\u003e#3059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/85bf0275fbf26f5a7fef539a03bebfeb125b9ea3\"\u003e\u003ccode\u003e85bf027\u003c/code\u003e\u003c/a\u003e Version 0.49.2 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3d480dd7d5adf474d0736c67a2a3064e88226837\"\u003e\u003ccode\u003e3d480dd\u003c/code\u003e\u003c/a\u003e Ignore \u003ccode\u003eif-modified-since\u003c/code\u003e if \u003ccode\u003eif-none-match\u003c/code\u003e is present (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/da0605243010715356be69693a524f2300011948\"\u003e\u003ccode\u003eda06052\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3056\"\u003e#3056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/34caa9900f47b9ab5afffa5f4ee148a00940f622\"\u003e\u003ccode\u003e34caa99\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3055\"\u003e#3055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.50.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typing-extensions` from 4.14.0 to 4.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/releases\"\u003etyping-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003cp\u003eNew features since 4.14.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.15.0rc1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.14.1\u003c/h2\u003e\n\u003ch1\u003eRelease 4.14.1 (July 4, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix usage of \u003ccode\u003etyping_extensions.TypedDict\u003c/code\u003e nested inside other types\n(e.g., \u003ccode\u003etyping.Type[typing_extensions.TypedDict]\u003c/code\u003e). This is not allowed by the\ntype system but worked on older versions, so we maintain support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/blob/main/CHANGELOG.md\"\u003etyping-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.15.0 (August 25, 2025)\u003c/h1\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003ch1\u003eRelease 4.15.0rc1 (August 18, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.14.1 (July 4, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix usage of \u003ccode\u003etyping_extensions.TypedDict\u003c/code\u003e nested inside other types\n(e.g., \u003ccode\u003etyping.Type[typing_extensions.TypedDict]\u003c/code\u003e). This is not allowed by the\ntype system but worked on older versions, so we maintain support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/9d1637e264b5c1a6b7acee3e907015f89b20c2c9\"\u003e\u003ccode\u003e9d1637e\u003c/code\u003e\u003c/a\u003e Prepare release 4.15.0 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/4bd67c5be5d9443c7d33c314d02a56ee125eb88d\"\u003e\u003ccode\u003e4bd67c5\u003c/code\u003e\u003c/a\u003e Coverage: exclude some noise (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/656\"\u003e#656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e589a26da73b075c5276bae40b86db1af0144f84\"\u003e\u003ccode\u003ee589a26\u003c/code\u003e\u003c/a\u003e Coverage: add detailed report to job summary (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/67d37fed1298e050f74d5acc95b2621bd37837ad\"\u003e\u003ccode\u003e67d37fe\u003c/code\u003e\u003c/a\u003e Coverage: Implement fail_under (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/654\"\u003e#654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e9ae26f5286edee9262727755ecb9ad16e999192\"\u003e\u003ccode\u003ee9ae26f\u003c/code\u003e\u003c/a\u003e Don't delete previous coverage comment (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/653\"\u003e#653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/ac80bb728a3006fc88ef7373b92f0c25cfcc7895\"\u003e\u003ccode\u003eac80bb7\u003c/code\u003e\u003c/a\u003e Add Coverage workflow (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/623\"\u003e#623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/abaaafd98c1cc7e5baf098ec287a3d22cb339670\"\u003e\u003ccode\u003eabaaafd\u003c/code\u003e\u003c/a\u003e Prepare release 4.15.0rc1 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/650\"\u003e#650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/98104053ea8d49bcdd247804e5fa9f73136acbd4\"\u003e\u003ccode\u003e9810405\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e@disjoint_base\u003c/code\u003e (PEP 800) (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/634\"\u003e#634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/7ee9e05fd484d06899ce56e80f5e1aa4c760fc03\"\u003e\u003ccode\u003e7ee9e05\u003c/code\u003e\u003c/a\u003e Backport type_params fix from CPython (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/646\"\u003e#646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/1e8eb9c06ef51b3a1e1f05303a16feca13f5ed98\"\u003e\u003ccode\u003e1e8eb9c\u003c/code\u003e\u003c/a\u003e Do not refer to PEP 705 as being experimental (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/typing_extensions/compare/4.14.0...4.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.6.0 to 2.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud ...\n\n_Description has been truncated_","html_url":"https://github.com/freedomofpress/securedrop-dev-docs/pull/281","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/freedomofpress%2Fsecuredrop-dev-docs/issues/281","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/281/packages"}}]}