{"id":44593,"name":"mkdocs-gen-files","ecosystem":"pip","repository_url":"https://github.com/oprypin/mkdocs-gen-files","issues_count":43,"created_at":"2025-06-21T18:05:43.399Z","updated_at":"2025-06-21T18:05:43.399Z","purl":"pkg:pypi/mkdocs-gen-files","metadata":{"id":2803681,"name":"mkdocs-gen-files","ecosystem":"pypi","description":"MkDocs plugin to programmatically generate documentation pages during the build","homepage":null,"licenses":"MIT License","normalized_licenses":["MIT"],"repository_url":"https://github.com/oprypin/mkdocs-gen-files","keywords_array":["mkdocs","mkdocs-plugin"],"namespace":null,"versions_count":11,"first_release_published_at":"2020-12-10T00:53:29.000Z","latest_release_published_at":"2023-04-27T19:48:07.000Z","latest_release_number":"0.5.0","last_synced_at":"2025-05-22T09:11:11.852Z","created_at":"2022-04-10T11:37:03.775Z","updated_at":"2025-05-22T09:22:53.433Z","registry_url":"https://pypi.org/project/mkdocs-gen-files/","install_command":"pip install mkdocs-gen-files --index-url https://pypi.org/simple","documentation_url":"https://oprypin.github.io/mkdocs-gen-files/","metadata":{"funding":null,"documentation":"https://oprypin.github.io/mkdocs-gen-files/","classifiers":["Development Status :: 5 - Production/Stable","Environment :: Console","Environment :: Web Environment","Intended Audience :: Developers","License :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.7","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Topic :: Documentation","Topic :: Software Development :: Documentation","Topic :: Text Processing :: Markup :: Markdown","Typing :: Typed"],"normalized_name":"mkdocs-gen-files"},"repo_metadata":{"id":37038829,"uuid":"319447213","full_name":"oprypin/mkdocs-gen-files","owner":"oprypin","description":"MkDocs plugin to programmatically generate documentation pages during the build","archived":false,"fork":false,"pushed_at":"2025-02-15T16:34:14.000Z","size":113,"stargazers_count":122,"open_issues_count":11,"forks_count":10,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-09T19:19:10.426Z","etag":null,"topics":["mkdocs","mkdocs-plugin","mkdocstrings"],"latest_commit_sha":null,"homepage":"https://oprypin.github.io/mkdocs-gen-files","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/oprypin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"oprypin"}},"created_at":"2020-12-07T21:19:53.000Z","updated_at":"2025-04-16T10:23:55.000Z","dependencies_parsed_at":"2023-10-15T13:26:57.716Z","dependency_job_id":"6982d42f-8f54-4c97-b946-e6376b713666","html_url":"https://github.com/oprypin/mkdocs-gen-files","commit_stats":{"total_commits":86,"total_committers":5,"mean_commits":17.2,"dds":"0.046511627906976716","last_synced_commit":"85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oprypin","download_url":"https://codeload.github.com/oprypin/mkdocs-gen-files/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":255678739,"owners_count":22269395,"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":"oprypin","name":"Oleh Prypin","uuid":"371383","kind":"user","description":"","email":"","website":"http://pryp.in/","location":"Munich, Germany","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/371383?u=15bebff6355ea30ca42820fd1c775466ddd85b4e\u0026v=4","repositories_count":137,"last_synced_at":"2025-05-15T14:47:44.003Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/oprypin","funding_links":["https://github.com/sponsors/oprypin"],"total_stars":2130,"followers":302,"following":1,"created_at":"2022-11-07T18:00:07.422Z","updated_at":"2025-05-15T14:47:44.003Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oprypin","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oprypin/repositories"},"tags":[{"name":"v0.5.0","sha":"b02016c315e25017f5678e190d98f53c64c99446","kind":"tag","published_at":"2023-04-27T19:48:02.000Z","download_url":"https://codeload.github.com/oprypin/mkdocs-gen-files/tar.gz/v0.5.0","html_url":"https://github.com/oprypin/mkdocs-gen-files/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"faf8012228b3760f920e566b12aef696210d7ec2","kind":"tag","published_at":"2022-08-22T17:39:31.000Z","download_url":"https://codeload.github.com/oprypin/mkdocs-gen-files/tar.gz/v0.4.0","html_url":"https://github.com/oprypin/mkdocs-gen-files/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.4.0/manifests"},{"name":"v0.3.5","sha":"1d6a55f725edb8e267c5777f03c4553748f789bd","kind":"tag","published_at":"2022-07-05T20:07:36.000Z","download_url":"https://codeload.github.com/oprypin/mkdocs-gen-files/tar.gz/v0.3.5","html_url":"https://github.com/oprypin/mkdocs-gen-files/releases/tag/v0.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.3.5/manifests"},{"name":"v0.3.4","sha":"4d5d4ac497ef50c070253c1ae4062b395b03413c","kind":"tag","published_at":"2022-01-21T18:39:22.000Z","download_url":"https://codeload.github.com/oprypin/mkdocs-gen-files/tar.gz/v0.3.4","html_url":"https://github.com/oprypin/mkdocs-gen-files/releases/tag/v0.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.3.4/manifests"},{"name":"v0.3.3","sha":"1a261ff9dd9a323950c2d46a8b1aab3421b2e916","kind":"tag","published_at":"2021-06-01T23:27:49.000Z","download_url":"https://codeload.github.com/oprypin/mkdocs-gen-files/tar.gz/v0.3.3","html_url":"https://github.com/oprypin/mkdocs-gen-files/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.3.3/manifests"},{"name":"v0.3.2","sha":"aaa32d247f8d7cffe0e214d9cd472ff1307192a7","kind":"tag","published_at":"2021-04-30T23:54:05.000Z","download_url":"https://codeload.github.com/oprypin/mkdocs-gen-files/tar.gz/v0.3.2","html_url":"https://github.com/oprypin/mkdocs-gen-files/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"08d6e91924af3a67031f30d925de12e893c5804b","kind":"tag","published_at":"2021-02-28T23:33:00.000Z","download_url":"https://codeload.github.com/oprypin/mkdocs-gen-files/tar.gz/v0.3.1","html_url":"https://github.com/oprypin/mkdocs-gen-files/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"96cc72d8b84aa0593b782424502541c736dd7e11","kind":"tag","published_at":"2021-02-23T23:48:15.000Z","download_url":"https://codeload.github.com/oprypin/mkdocs-gen-files/tar.gz/v0.3.0","html_url":"https://github.com/oprypin/mkdocs-gen-files/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"e68d285f2aa03ff4877a86e9011bb59b0dae484c","kind":"tag","published_at":"2021-01-31T16:06:39.000Z","download_url":"https://codeload.github.com/oprypin/mkdocs-gen-files/tar.gz/v0.2.0","html_url":"https://github.com/oprypin/mkdocs-gen-files/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.2.0/manifests"},{"name":"v0.1.1","sha":"528631788143ab568ea6839cdeae19cf16235eea","kind":"tag","published_at":"2021-01-25T00:12:47.000Z","download_url":"https://codeload.github.com/oprypin/mkdocs-gen-files/tar.gz/v0.1.1","html_url":"https://github.com/oprypin/mkdocs-gen-files/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"9733c1d7cad2767c5ba4e58251f0e0c16c35c867","kind":"tag","published_at":"2020-12-10T00:52:11.000Z","download_url":"https://codeload.github.com/oprypin/mkdocs-gen-files/tar.gz/v0.1.0","html_url":"https://github.com/oprypin/mkdocs-gen-files/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oprypin%2Fmkdocs-gen-files/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2025-05-22T09:22:53.432Z","dependent_packages_count":260,"downloads":513567,"downloads_period":"last-month","dependent_repos_count":533,"rankings":{"downloads":0.8699443686927121,"dependent_repos_count":0.6173181846867607,"dependent_packages_count":0.1072848517996508,"stargazers_count":8.02601377199694,"forks_count":12.549295613025135,"docker_downloads_count":3.378262083526167,"average":4.258019812287894},"purl":"pkg:pypi/mkdocs-gen-files","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/mkdocs-gen-files","docker_dependents_count":4,"docker_downloads_count":148,"usage_url":"https://repos.ecosyste.ms/usage/pypi/mkdocs-gen-files","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/mkdocs-gen-files/dependencies","status":null,"funding_links":["https://github.com/sponsors/oprypin"],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/mkdocs-gen-files/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/mkdocs-gen-files/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/mkdocs-gen-files/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/mkdocs-gen-files/related_packages","maintainers":[{"uuid":"oprypin","login":"oprypin","name":null,"email":null,"url":null,"packages_count":20,"html_url":"https://pypi.org/user/oprypin/","role":null,"created_at":"2023-02-24T04:16:54.896Z","updated_at":"2023-02-24T04:16:54.896Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/oprypin/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":696244,"maintainers_count":295656,"namespaces_count":0,"keywords_count":230252,"github":"pypi","metadata":{"funded_packages_count":49173},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-22T05:49:44.223Z","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":32,"unique_repositories_count_past_30_days":1,"recent_issues":[{"uuid":"4660808409","node_id":"PR_kwDOK8iTgM7mUYD8","number":361,"state":"open","title":"build(deps-dev): bump the uv-pip group with 3 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-14T22:11:59.000Z","updated_at":"2026-06-15T01:05:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev): bump","group_name":"uv-pip","update_count":3,"packages":[{"name":"mkdocs-gen-files","old_version":"0.6.0","new_version":"0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-include-markdown-plugin","old_version":"7.2.0","new_version":"7.3.0","repository_url":"https://github.com/mondeja/mkdocs-include-markdown-plugin"},{"name":"mkdocs-material","old_version":"9.7.1","new_version":"9.7.6","repository_url":"https://github.com/squidfunk/mkdocs-material"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-pip group with 3 updates: [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files), [mkdocs-include-markdown-plugin](https://github.com/mondeja/mkdocs-include-markdown-plugin) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material).\n\nUpdates `mkdocs-gen-files` from 0.6.0 to 0.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-include-markdown-plugin` from 7.2.0 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/releases\"\u003emkdocs-include-markdown-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.3.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new setting \u003ccode\u003einclude_from_url\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.2.2\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix natural order by extension not correctly applied\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.2.1\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize string concatenation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/0604be2390c35b9da7d1a69be2f8925693460efd\"\u003e\u003ccode\u003e0604be2\u003c/code\u003e\u003c/a\u003e Add new setting \u003ccode\u003einclude_from_url\u003c/code\u003e(\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/299\"\u003e#299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/f0809f9ac84db5dd29a5bc98e9029d69164237b8\"\u003e\u003ccode\u003ef0809f9\u003c/code\u003e\u003c/a\u003e Document order setting (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/98cf8e8dee370cf332ed00cd8426d2ffcfa07065\"\u003e\u003ccode\u003e98cf8e8\u003c/code\u003e\u003c/a\u003e Fix natural order by extension not correctly applied (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/292\"\u003e#292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/39df60911e5a5da6cd0cdace89cead96c79636bc\"\u003e\u003ccode\u003e39df609\u003c/code\u003e\u003c/a\u003e Optimize string concatenation across multiple files (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/39fb543b070d00114b2ec72d6373499b74092066\"\u003e\u003ccode\u003e39fb543\u003c/code\u003e\u003c/a\u003e docs(license): update copyright year(s) (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/6fd647f159f346e002e14c175f0b8ea6e67f8144\"\u003e\u003ccode\u003e6fd647f\u003c/code\u003e\u003c/a\u003e Document that filesystem order allows reverse (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/32978ca56cbc343feda9d7e0e448162b272e7f5b\"\u003e\u003ccode\u003e32978ca\u003c/code\u003e\u003c/a\u003e Deduplicate common arguments in documentation (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/compare/v7.2.0...v7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.7.1 to 9.7.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.6\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.5\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.4\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed environment (recommended by \u003ca href=\"https://github.com/caveeroo\"\u003e\u003ccode\u003e@​caveeroo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.6 (2026-03-19)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.5 (2026-03-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.4 (2026-03-03)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed environment\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.3 (2026-02-24)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8567\"\u003e#8567\u003c/a\u003e: Print MkDocs 2.0 incompatibility warning to stderr\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.2 (2026-02-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to 'mkdocs build' about impending MkDocs 2.0 incompatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\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/squidfunk/mkdocs-material/commit/6c52ed6289b171a153875491f059a94819ec3e10\"\u003e\u003ccode\u003e6c52ed6\u003c/code\u003e\u003c/a\u003e Prepare 9.7.6 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/51d9b76636431814df924bcda27485b16023978b\"\u003e\u003ccode\u003e51d9b76\u003c/code\u003e\u003c/a\u003e Automatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/6f9a48b4048650341a654d9757da57fc1e3e323d\"\u003e\u003ccode\u003e6f9a48b\u003c/code\u003e\u003c/a\u003e Updated links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/00b9933e5821fd852700268767d4fd53ae1ce1cb\"\u003e\u003ccode\u003e00b9933\u003c/code\u003e\u003c/a\u003e Prepare 9.7.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/37683d12c9cd62309aa917237741ee0886709b7c\"\u003e\u003ccode\u003e37683d1\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/199e31598055d5d6ea538618804c7558f5d81047\"\u003e\u003ccode\u003e199e315\u003c/code\u003e\u003c/a\u003e Updated warning message to clarify relation to MkDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/10258334eb13545e6d708cf121c3867bfbdb6017\"\u003e\u003ccode\u003e1025833\u003c/code\u003e\u003c/a\u003e Limited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/1532f523f6c650c9d6fd16229ee8bec0759b4151\"\u003e\u003ccode\u003e1532f52\u003c/code\u003e\u003c/a\u003e Added update log to blog post\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/d0c8b2862a966f5f268d4a4c35bb4fcfccebb9b1\"\u003e\u003ccode\u003ed0c8b28\u003c/code\u003e\u003c/a\u003e Updated dependencies to fix vulnerabilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/71d48699a0e2bef231e796818c4dc20b230a5f45\"\u003e\u003ccode\u003e71d4869\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.7.1...9.7.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/cpp-linter/cpp-linter-rs/pull/361","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpp-linter%2Fcpp-linter-rs/issues/361","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/361/packages"},{"uuid":"4328240168","node_id":"PR_kwDOQdG5ts7VmSvp","number":84,"state":"open","title":"build(deps): update mkdocs-gen-files requirement from \u003e=0.5 to \u003e=0.6.1","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-25T13:42:35.000Z","updated_at":"2026-04-25T13:43:05.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): update","packages":[{"name":"mkdocs-gen-files","old_version":"\u003e=0.5","new_version":"\u003e=0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/gmarupilla/AgroTerraFlow/pull/84","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gmarupilla%2FAgroTerraFlow/issues/84","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/84/packages"},{"uuid":"4324336829","node_id":"PR_kwDOMFeZqs7VZ5R7","number":141,"state":"open","title":"python-deps(deps): bump the python-dependencies group across 1 directory with 40 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["dependabot[bot]"],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-24T16:43:17.000Z","updated_at":"2026-04-24T16:56:03.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"python-deps(deps): bump","group_name":"python-dependencies","update_count":40,"packages":[{"name":"black","old_version":"24.10.0","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"codespell","old_version":"2.4.1","new_version":"2.4.2","repository_url":"https://github.com/codespell-project/codespell"},{"name":"griffe","old_version":"1.15.0","new_version":"2.0.2","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"mkdocs-gen-files","old_version":"0.6.0","new_version":"0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-include-markdown-plugin","old_version":"7.2.1","new_version":"7.2.2","repository_url":"https://github.com/mondeja/mkdocs-include-markdown-plugin"},{"name":"mkdocs-literate-nav","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/oprypin/mkdocs-literate-nav"},{"name":"mkdocs-section-index","old_version":"0.3.10","new_version":"0.3.12","repository_url":"https://github.com/oprypin/mkdocs-section-index"},{"name":"mkdocstrings","old_version":"1.0.3","new_version":"1.0.4","repository_url":"https://github.com/mkdocstrings/mkdocstrings"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [protobuf](https://github.com/protocolbuffers/protobuf), [tm-data-types](https://github.com/tektronix/tm_data_types), [poetry-pre-commit-plugin](https://github.com/vstrimaitis/poetry-pre-commit-plugin), [pylint](https://github.com/pylint-dev/pylint), [pyright](https://github.com/RobertCraigie/pyright-python), [pyroma](https://github.com/regebro/pyroma), [wheel](https://github.com/pypa/wheel), [black](https://github.com/psf/black), [codespell](https://github.com/codespell-project/codespell), [griffe](https://github.com/mkdocstrings/griffe), [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files), [mkdocs-include-markdown-plugin](https://github.com/mondeja/mkdocs-include-markdown-plugin), [mkdocs-literate-nav](https://github.com/oprypin/mkdocs-literate-nav), [mkdocs-section-index](https://github.com/oprypin/mkdocs-section-index), [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings), [mkdocstrings-python](https://github.com/mkdocstrings/python), [packaging](https://github.com/pypa/packaging), [pydantic](https://github.com/pydantic/pydantic), [pygments](https://github.com/pygments/pygments), [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions), [requests](https://github.com/psf/requests), [tomli](https://github.com/hukkin/tomli), [coverage](https://github.com/coveragepy/coveragepy), [psutil](https://github.com/giampaolo/psutil), [pytest](https://github.com/pytest-dev/pytest), [pytest-cov](https://github.com/pytest-dev/pytest-cov), [pytest-env](https://github.com/pytest-dev/pytest-env), [certifi](https://github.com/certifi/python-certifi), [chardet](https://github.com/chardet/chardet), [charset-normalizer](https://github.com/jawah/charset_normalizer), [idna](https://github.com/kjd/idna), [pytz](https://github.com/stub42/pytz), [setuptools](https://github.com/pypa/setuptools), [click](https://github.com/pallets/click), [mkdocs-get-deps](https://github.com/mkdocs/get-deps), [more-itertools](https://github.com/more-itertools/more-itertools), [pathspec](https://github.com/cpburnz/python-pathspec), [platformdirs](https://github.com/tox-dev/platformdirs), [pydantic-core](https://github.com/pydantic/pydantic) and [typeguard](https://github.com/agronholm/typeguard) to permit the latest version.\nUpdates `protobuf` to 6.33.6\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tm-data-types` to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tektronix/tm_data_types/releases\"\u003etm-data-types's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev0.4.0 (2026-02-27)\u003c/h1\u003e\n\u003ch2\u003eMerged Pull Requests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003egh-actions(deps): bump the gh-actions-dependencies group with 12 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group with 7 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: update dependencies in requirements.txt and pyproject.toml for documentation builds (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egh-actions(deps): bump the gh-actions-dependencies group with 13 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate linting (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGanesh12/wfm file type check (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group across 1 directory with 15 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/148\"\u003e#148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Drop support for Python 3.9, since it is EOL (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/146\"\u003e#146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egh-actions(deps): bump tektronix/python-package-ci-cd (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/129\"\u003e#129\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003echeck_style()\u003c/code\u003e logic to properly detect Digital and IQ waveform file types in addition to Analog waveforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tektronix/tm_data_types/blob/main/CHANGELOG.md\"\u003etm-data-types's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.0 (2026-02-27)\u003c/h2\u003e\n\u003ch3\u003eMerged Pull Requests\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003egh-actions(deps): bump the gh-actions-dependencies group with 12 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group with 7 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: update dependencies in requirements.txt and pyproject.toml for documentation builds (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egh-actions(deps): bump the gh-actions-dependencies group with 13 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate linting (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGanesh12/wfm file type check (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group across 1 directory with 15 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/148\"\u003e#148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Drop support for Python 3.9, since it is EOL (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/146\"\u003e#146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egh-actions(deps): bump tektronix/python-package-ci-cd (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/129\"\u003e#129\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003echeck_style()\u003c/code\u003e logic to properly detect Digital and IQ waveform file types in addition to Analog waveforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003ev0.3.0 (2025-10-28)\u003c/h2\u003e\n\u003ch3\u003eMerged Pull Requests\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ewfm type detection (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/125\"\u003e#125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group with 6 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egh-actions(deps): bump tektronix/python-package-ci-cd (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/104\"\u003e#104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Update Mermaid library source to use CDN (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/116\"\u003e#116\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group with 5 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/112\"\u003e#112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: Correct formatting in glossary and update setuptools version in pre-commit config (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/111\"\u003e#111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egh-actions(deps): bump actions/checkout (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/107\"\u003e#107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group with 8 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/105\"\u003e#105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved unused models (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/101\"\u003e#101\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed WFM file type detection to correctly identify digital and IQ waveforms instead of always defaulting to analog waveforms\u003c/li\u003e\n\u003cli\u003eImproved metadata system error messages to provide helpful guidance when accessing custom metadata fields\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eset_custom_metadata()\u003c/code\u003e convenience method to \u003ccode\u003eWaveformMetaInfo\u003c/code\u003e classes for easier custom metadata management\u003c/li\u003e\n\u003cli\u003eAdded comprehensive docstrings to all metadata classes with practical examples and usage guidance\u003c/li\u003e\n\u003cli\u003eAdded helpful warnings in \u003ccode\u003eremap()\u003c/code\u003e method for unknown metadata fields\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/2522357ff0fa2a9cc2e8a8c3b59165e53a215279\"\u003e\u003ccode\u003e2522357\u003c/code\u003e\u003c/a\u003e 0.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/9b3631f494b7bcc9a6927bfc59a66990dfddbcd7\"\u003e\u003ccode\u003e9b3631f\u003c/code\u003e\u003c/a\u003e gh-actions(deps): bump the gh-actions-dependencies group with 12 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/issues/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/e7834eb32dbd214861238ab54ebb8a044074b69e\"\u003e\u003ccode\u003ee7834eb\u003c/code\u003e\u003c/a\u003e python-deps(deps): bump the python-dependencies group with 7 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/issues/155\"\u003e#155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/c75d072446cdbf8b74c181338baafaa0d771cd26\"\u003e\u003ccode\u003ec75d072\u003c/code\u003e\u003c/a\u003e python-deps(deps): bump the python-dependencies group with 7 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/a8a10483514af0e0bd89258051dc5ff973736fff\"\u003e\u003ccode\u003ea8a1048\u003c/code\u003e\u003c/a\u003e chore: update dependencies in requirements.txt and pyproject.toml for documen...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/a52bb475c24269b05542f6ba1766cd3f65953f80\"\u003e\u003ccode\u003ea52bb47\u003c/code\u003e\u003c/a\u003e gh-actions(deps): bump the gh-actions-dependencies group with 13 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/issues/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/94e3d037c3145f69f651a744f996ba53fb9a4ea1\"\u003e\u003ccode\u003e94e3d03\u003c/code\u003e\u003c/a\u003e python-deps(deps): bump the python-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/f160125524bceabb9f5a0b4f5338edeb0d125dd8\"\u003e\u003ccode\u003ef160125\u003c/code\u003e\u003c/a\u003e Update linting (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/84c847061bac51530b3fd2fac3a0ad9f18123ebd\"\u003e\u003ccode\u003e84c8470\u003c/code\u003e\u003c/a\u003e Ganesh12/wfm file type check (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/f5abd4397d4a09ecd9239d9d3a5b1d0cb638ab2f\"\u003e\u003ccode\u003ef5abd43\u003c/code\u003e\u003c/a\u003e python-deps(deps): bump the python-dependencies group across 1 directory with...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tektronix/tm_data_types/compare/v0.2.0...v0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `poetry-pre-commit-plugin` to 0.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vstrimaitis/poetry-pre-commit-plugin/releases\"\u003epoetry-pre-commit-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.2.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix pre-commit not found  by \u003ca href=\"https://github.com/kohlerj\"\u003e\u003ccode\u003e@​kohlerj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vstrimaitis/poetry-pre-commit-plugin/pull/10\"\u003evstrimaitis/poetry-pre-commit-plugin#10\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/vstrimaitis/poetry-pre-commit-plugin/compare/0.2.1...0.2.2\"\u003ehttps://github.com/vstrimaitis/poetry-pre-commit-plugin/compare/0.2.1...0.2.2\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/vstrimaitis/poetry-pre-commit-plugin/commit/b7834a2ef97dfa7a649be1b3786d066a4587b556\"\u003e\u003ccode\u003eb7834a2\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vstrimaitis/poetry-pre-commit-plugin/commit/5800969cff9ac788074d1a6063504cff83dfc1ed\"\u003e\u003ccode\u003e5800969\u003c/code\u003e\u003c/a\u003e Fix pre-commit not found  (\u003ca href=\"https://redirect.github.com/vstrimaitis/poetry-pre-commit-plugin/issues/10\"\u003e#10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vstrimaitis/poetry-pre-commit-plugin/commit/96d3dff56aed4eac68743af8e532d00cc1ef4862\"\u003e\u003ccode\u003e96d3dff\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vstrimaitis/poetry-pre-commit-plugin/commit/3b0e8603af114d1baa7e90b1a36062698b6659a1\"\u003e\u003ccode\u003e3b0e860\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vstrimaitis/poetry-pre-commit-plugin/commit/e3029cf4de93906577c8f1fcf6ef8f7479eb7cba\"\u003e\u003ccode\u003ee3029cf\u003c/code\u003e\u003c/a\u003e Revert back to standard dependency version requirements (\u003ca href=\"https://redirect.github.com/vstrimaitis/poetry-pre-commit-plugin/issues/9\"\u003e#9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vstrimaitis/poetry-pre-commit-plugin/commit/4726425ee7e0bc4311e749ff09689a0245902a4c\"\u003e\u003ccode\u003e4726425\u003c/code\u003e\u003c/a\u003e Compatibility with poetry 2.0.0 (\u003ca href=\"https://redirect.github.com/vstrimaitis/poetry-pre-commit-plugin/issues/8\"\u003e#8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vstrimaitis/poetry-pre-commit-plugin/commit/23d47afb4201c2a756272debd25b6d2b0959f24a\"\u003e\u003ccode\u003e23d47af\u003c/code\u003e\u003c/a\u003e Fix badge\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/vstrimaitis/poetry-pre-commit-plugin/compare/0.1.2...0.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pylint` to 4.0.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/88e1ab7545a4af4aea15c305a154c164a95ab842\"\u003e\u003ccode\u003e88e1ab7\u003c/code\u003e\u003c/a\u003e Bump pylint to 4.0.5, update changelog (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10860\"\u003e#10860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/d96d489a1743d32b6bfa53fc0f69a4333209a146\"\u003e\u003ccode\u003ed96d489\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Relax isort version constraint to allow isort 8 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/0b08ccb014c265700f244a885bdcbdfa3a03de46\"\u003e\u003ccode\u003e0b08ccb\u003c/code\u003e\u003c/a\u003e Fix dynamic color mapping for \u0026quot;fail-on\u0026quot; messages when using multiple reporter...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/154dba43276e8232a2e1cb8f90bfcc63886f3460\"\u003e\u003ccode\u003e154dba4\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix FP for \u003ccode\u003einvalid-name\u003c/code\u003e with \u003ccode\u003etyping.Final\u003c/code\u003e on...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/7b73bfdedf275935b9c5b43a6aeda5cc648b4847\"\u003e\u003ccode\u003e7b73bfd\u003c/code\u003e\u003c/a\u003e Disable unspecified-encoding for py-version above Python 3.15 (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10800\"\u003e#10800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/4cc98be8b7786dbc6692493fe9cedb8585af5518\"\u003e\u003ccode\u003e4cc98be\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix setting options for import order checker (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/f0d30a27b510d69f846e3aaa0054cf0a1412923c\"\u003e\u003ccode\u003ef0d30a2\u003c/code\u003e\u003c/a\u003e Sync astroid version with requirements file again\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/38bdf024648724e6aea017e62d3b57cb44097ec3\"\u003e\u003ccode\u003e38bdf02\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix \u003ccode\u003elogging-unsupported-format\u003c/code\u003e when logging ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/f08c33ae3e691eed868e49c0d15270dc6e6a0d6c\"\u003e\u003ccode\u003ef08c33a\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Properly detect \u003ccode\u003eself.fail()\u003c/code\u003e as a terminating...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/e16f942166511d6fb4427e503a734152fae0c4fe\"\u003e\u003ccode\u003ee16f942\u003c/code\u003e\u003c/a\u003e Bump pylint to 4.0.4, update changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pylint-dev/pylint/compare/v3.3.7...v4.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` to 1.1.409\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/d7508e5425d3d02761d70dab1f9a2086573af429\"\u003e\u003ccode\u003ed7508e5\u003c/code\u003e\u003c/a\u003e [pyright updated to 1.1.409] Update Version (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/81b795a41ddcc3c77218d8c8e406983e39852285\"\u003e\u003ccode\u003e81b795a\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.408 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/53e8efb4638daca6c541d18ad35dafb0e5d9f34d\"\u003e\u003ccode\u003e53e8efb\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.407 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/1d515b71299f9dc4c066ce37e673d93bda4bc2df\"\u003e\u003ccode\u003e1d515b7\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.406 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/e211ec8df8d389a147af6d31bdb2bc812f04aa5a\"\u003e\u003ccode\u003ee211ec8\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.405 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/d393df1703a808473b84bd14a2702f4793014031\"\u003e\u003ccode\u003ed393df1\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.404 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/352\"\u003e#352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/047488f6b38c6bd59e43daf838b2863b6cab9008\"\u003e\u003ccode\u003e047488f\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.403 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.402...v1.1.409\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyroma` to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/regebro/pyroma/blob/master/CHANGES.txt\"\u003epyroma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1 (2025-12-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003echeck-manifest was missing from the requirements list.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePassing in multiple tests to be skipped now actually works. [Matt Norton]\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0 (2025-07-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRe-releasing as final.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0b2 (2025-07-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug that failed to find license-expression fields.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0b1 (2025-07-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the internal metadata names to match Core Metadata. This brings\nless confusion, especially since setuptools and PyPI aren't exactly the\nsame either, so let's pick the offical standard and run with it.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a rating for if the wheel fails to build. Unfortunately it's\nimpossible to get a proper error out of it, so the message tells\nyou to run python -m build.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0a1 (2025-07-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved support for fetching data via monkey-patching setup.py.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a warning if you have only a setup.cfg, something that is\nworking with some tools, but is not officially supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSome general cleanups and simplifications thanks to those changes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.3 (2025-07-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLicensing specifications are less flexible than I thought.\nUpdated to reflect that.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/dd478a67d029502036973a9f596ec4b2c0614bf7\"\u003e\u003ccode\u003edd478a6\u003c/code\u003e\u003c/a\u003e Preparing release 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/347aee88c82a62fb7648ff46d2c5cc4974e80e7e\"\u003e\u003ccode\u003e347aee8\u003c/code\u003e\u003c/a\u003e Comments, updates, contributor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/edc73191ae1f0fb1db50a3915436aba29c131e59\"\u003e\u003ccode\u003eedc7319\u003c/code\u003e\u003c/a\u003e Fix only skipping last listed test in CLI arg (\u003ca href=\"https://redirect.github.com/regebro/pyroma/issues/122\"\u003e#122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/fe721451f6acdc92a2429f0f4cc58863f6b9b2b2\"\u003e\u003ccode\u003efe72145\u003c/code\u003e\u003c/a\u003e Updated GitHub Actions (\u003ca href=\"https://redirect.github.com/regebro/pyroma/issues/119\"\u003e#119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/e3acb372d5ab05111476e41ec0a2c2481cdd5c22\"\u003e\u003ccode\u003ee3acb37\u003c/code\u003e\u003c/a\u003e Switch to tox in make as well (\u003ca href=\"https://redirect.github.com/regebro/pyroma/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/9723f4105df27e5fc7b80dbff21a7ba546408b25\"\u003e\u003ccode\u003e9723f41\u003c/code\u003e\u003c/a\u003e Fixed typo (\u003ca href=\"https://redirect.github.com/regebro/pyroma/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/8ee23ca7c5a8d86bcc2f62f55fc11d89bd72f877\"\u003e\u003ccode\u003e8ee23ca\u003c/code\u003e\u003c/a\u003e Back to development: 5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/919b6884afaf151b99a7fcbf255589cdf1b7a567\"\u003e\u003ccode\u003e919b688\u003c/code\u003e\u003c/a\u003e Preparing release 5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/941bcf7cb01ff34c4f31183931e233853b2a4fec\"\u003e\u003ccode\u003e941bcf7\u003c/code\u003e\u003c/a\u003e Pyroma version is now too old.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/c139ee504e9cb6a2b7d7b857853dbb1802b5e8f8\"\u003e\u003ccode\u003ec139ee5\u003c/code\u003e\u003c/a\u003e Pyroma 5.0 (\u003ca href=\"https://redirect.github.com/regebro/pyroma/issues/112\"\u003e#112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/regebro/pyroma/compare/4.2...5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `wheel` to 0.47.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/releases\"\u003ewheel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.47.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003ewheel info\u003c/code\u003e subcommand to display metadata about wheel files without unpacking them (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/639\"\u003e#639\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eWheelFile\u003c/code\u003e raising \u003ccode\u003eMissing RECORD file\u003c/code\u003e when the wheel filename contains uppercase characters (e.g. \u003ccode\u003eDjango-3.2.5.whl\u003c/code\u003e) but the \u003ccode\u003e.dist-info\u003c/code\u003e directory inside uses normalized lowercase naming (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/blob/main/docs/news.rst\"\u003ewheel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease Notes\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003e0.47.0 (2026-04-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003ewheel info\u003c/code\u003e subcommand to display metadata about wheel files without\nunpacking them (\u003ccode\u003e[#639](https://github.com/pypa/wheel/issues/639) \u0026lt;https://github.com/pypa/wheel/issues/639\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eWheelFile\u003c/code\u003e raising \u003ccode\u003eMissing RECORD file\u003c/code\u003e when the wheel filename contains\nuppercase characters (e.g. \u003ccode\u003eDjango-3.2.5.whl\u003c/code\u003e) but the \u003ccode\u003e.dist-info\u003c/code\u003e directory\ninside uses normalized lowercase naming\n(\u003ccode\u003e[#411](https://github.com/pypa/wheel/issues/411) \u0026lt;https://github.com/pypa/wheel/issues/411\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.3 (2026-01-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eImportError: cannot import name '_setuptools_logging' from 'wheel'\u003c/code\u003e when\ninstalled alongside an old version of setuptools and running the \u003ccode\u003ebdist_wheel\u003c/code\u003e\ncommand (\u003ccode\u003e[#676](https://github.com/pypa/wheel/issues/676) \u0026lt;https://github.com/pypa/wheel/issues/676\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.2 (2026-01-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestored the \u003ccode\u003ebdist_wheel\u003c/code\u003e command for compatibility with \u003ccode\u003esetuptools\u003c/code\u003e older than\nv70.1\u003c/li\u003e\n\u003cli\u003eImporting \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e instead of a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel unpack\u003c/code\u003e potentially altering the permissions of files outside of the\ndestination tree with maliciously crafted wheels (CVE-2026-24049)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.1 (2025-04-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTemporarily restored the \u003ccode\u003ewheel.macosx_libfile\u003c/code\u003e module\n(\u003ccode\u003e[#659](https://github.com/pypa/wheel/issues/659) \u0026lt;https://github.com/pypa/wheel/issues/659\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.0 (2025-04-03)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003ebdist_wheel\u003c/code\u003e setuptools command implementation and entry point.\nThe \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e module is now just an alias to\n\u003ccode\u003esetuptools.command.bdist_wheel\u003c/code\u003e, emitting a deprecation warning on import.\u003c/li\u003e\n\u003cli\u003eRemoved vendored \u003ccode\u003epackaging\u003c/code\u003e in favor of a run-time dependency on it\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.metadata\u003c/code\u003e module private (with a deprecation warning if it's\nimported\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.cli\u003c/code\u003e package private (no deprecation warning)\u003c/li\u003e\n\u003cli\u003eFixed an exception when calling the \u003ccode\u003econvert\u003c/code\u003e command with an empty description\nfield\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.1 (2024-11-23)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed pure Python wheels converted from eggs and wininst files having the ABI tag in\nthe file name\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/efd83a750f07a33462ea2eed365fd8dac9e51442\"\u003e\u003ccode\u003eefd83a7\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/bb69216d35588c2a0febc2d9a130727fe6e46ee3\"\u003e\u003ccode\u003ebb69216\u003c/code\u003e\u003c/a\u003e Reordered the changelog entries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/d5a1763ce927618bfa7d82abe334d0d14a93cc37\"\u003e\u003ccode\u003ed5a1763\u003c/code\u003e\u003c/a\u003e fix(wheelfile): resolve .dist-info path case-insensitively when reading wheel...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/5718957928ece25eb0d1c12023c71dea4fcb5cf9\"\u003e\u003ccode\u003e5718957\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/625806845ae5756be3cc0f9d44832c29079c0954\"\u003e\u003ccode\u003e6258068\u003c/code\u003e\u003c/a\u003e chore: log_level is better than log_cli_level (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/684\"\u003e#684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/2975debc789682b3a448b134611acc6962a93eb3\"\u003e\u003ccode\u003e2975deb\u003c/code\u003e\u003c/a\u003e Require tox \u0026gt;= 4.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/47674ba770e5ee72d679b7eb32b558e0c177640d\"\u003e\u003ccode\u003e47674ba\u003c/code\u003e\u003c/a\u003e chore: add check-sdist to checks (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/681\"\u003e#681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/56223f6f8dfa8d3d40923f24dcf159204698d7b6\"\u003e\u003ccode\u003e56223f6\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e__package__\u003c/code\u003e → \u003ccode\u003e__spec__.parent\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/679\"\u003e#679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/0ce509e02dc3cd1b7b0bdf868482de062b3c21c3\"\u003e\u003ccode\u003e0ce509e\u003c/code\u003e\u003c/a\u003e Added the wheel info subcommand (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/39039c0f3446c1ed5ec52621e98bc2bad8178a06\"\u003e\u003ccode\u003e39039c0\u003c/code\u003e\u003c/a\u003e Improved the index page\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/wheel/compare/0.46.3...0.47.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 24.10.0 to 26.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop evenloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop eventloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\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/c6755bb741b6481d6b3d3bb563c83fa060db96c9\"\u003e\u003ccode\u003ec6755bb\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5046\"\u003e#5046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69973fd6950985fbeb1090d96da717dc4d8380b0\"\u003e\u003ccode\u003e69973fd\u003c/code\u003e\u003c/a\u003e Harden blackd browser-facing request handling (\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4937fe6cf241139ddbfc16b0bdbb5b422798909d\"\u003e\u003ccode\u003e4937fe6\u003c/code\u003e\u003c/a\u003e Fix some shenanigans with the cache file and IPython (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2e641d174469c505d5ae905e75d4c769597e681f\"\u003e\u003ccode\u003e2e641d1\u003c/code\u003e\u003c/a\u003e docs: remove outdated Black Playground references (\u003ca href=\"https://redirect.github.com/psf/black/issues/5044\"\u003e#5044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c014b22a2d5e0632587b47b81151658bddfa0b88\"\u003e\u003ccode\u003ec014b22\u003c/code\u003e\u003c/a\u003e Remove unused internal code (\u003ca href=\"https://redirect.github.com/psf/black/issues/5041\"\u003e#5041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0dae20b2d009f2f03de8696d06b0c947d3abafc9\"\u003e\u003ccode\u003e0dae20b\u003c/code\u003e\u003c/a\u003e Add new changelog (\u003ca href=\"https://redirect.github.com/psf/black/issues/5036\"\u003e#5036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c5c1cbddd92cecb554ac2a77a24139dd76831030\"\u003e\u003ccode\u003ec5c1cbd\u003c/code\u003e\u003c/a\u003e Minor release patches (\u003ca href=\"https://redirect.github.com/psf/black/issues/5035\"\u003e#5035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7e5a828c37d71b6a6666e28eed444816def6a8f4\"\u003e\u003ccode\u003e7e5a828\u003c/code\u003e\u003c/a\u003e docs: clarify relationship between Black style and PEP 8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5025\"\u003e#5025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69705deb8776e7c5e585668da106d1abe2cb8d77\"\u003e\u003ccode\u003e69705de\u003c/code\u003e\u003c/a\u003e docs: add clearer pyproject configuration guidance (\u003ca href=\"https://redirect.github.com/psf/black/issues/5026\"\u003e#5026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/35ea67920b7f6ac8e09be1c47278752b1e827f76\"\u003e\u003ccode\u003e35ea679\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5032\"\u003e#5032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/24.10.0...26.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `codespell` from 2.4.1 to 2.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codespell-project/codespell/releases\"\u003ecodespell's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with chardet 7+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix and clarify cases in ignore patterns by \u003ca href=\"https://github.com/DanielYang59\"\u003e\u003ccode\u003e@​DanielYang59\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3583\"\u003ecodespell-project/codespell#3583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecodespell-private.yml: Do not codespell digital signature files by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3623\"\u003ecodespell-project/codespell#3623\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/codespell-project/codespell/pull/3634\"\u003ecodespell-project/codespell#3634\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enumbes-\u0026gt;numbers and numbesr-\u0026gt;numbers by \u003ca href=\"https://github.com/skshetry\"\u003e\u003ccode\u003e@​skshetry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3635\"\u003ecodespell-project/codespell#3635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling corrections for disclose and variables. by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3622\"\u003ecodespell-project/codespell#3622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling correction for Vulnererability and variants. by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3625\"\u003ecodespell-project/codespell#3625\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove lets-\u0026gt;let's by \u003ca href=\"https://github.com/Piedone\"\u003e\u003ccode\u003e@​Piedone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3633\"\u003ecodespell-project/codespell#3633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd corrections for \u0026quot;dictate\u0026quot; by \u003ca href=\"https://github.com/jdufresne\"\u003e\u003ccode\u003e@​jdufresne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3636\"\u003ecodespell-project/codespell#3636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd specicification (and pl) typo by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3639\"\u003ecodespell-project/codespell#3639\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;blueish\u0026quot; correction by \u003ca href=\"https://github.com/hadess\"\u003e\u003ccode\u003e@​hadess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3510\"\u003ecodespell-project/codespell#3510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u0026quot;lighting\u0026quot; as an option to fix \u0026quot;lighning\u0026quot; by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3648\"\u003ecodespell-project/codespell#3648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert adding \u003ccode\u003elien\u003c/code\u003e to the rare dictionary  by \u003ca href=\"https://github.com/nikolaik\"\u003e\u003ccode\u003e@​nikolaik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3631\"\u003ecodespell-project/codespell#3631\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u0026quot;ane\u0026quot; could have been \u0026quot;one\u0026quot; by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3645\"\u003ecodespell-project/codespell#3645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling correction for \u0026quot;priort\u0026quot; by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3647\"\u003ecodespell-project/codespell#3647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;fix\u0026quot; of \u0026quot;deques\u0026quot; - it is quite legit by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3649\"\u003ecodespell-project/codespell#3649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral new suggestions by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3621\"\u003ecodespell-project/codespell#3621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd proposal constraints to containts by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3652\"\u003ecodespell-project/codespell#3652\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditions dleay,infp,practive,utiliy by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3643\"\u003ecodespell-project/codespell#3643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd calncelled and its variations by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3650\"\u003ecodespell-project/codespell#3650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse raw strings for regex by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3654\"\u003ecodespell-project/codespell#3654\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow multiple spaces before codespell:ignore by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3653\"\u003ecodespell-project/codespell#3653\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded correction from \u003ccode\u003etimeour\u003c/code\u003e to \u003ccode\u003etimeout\u003c/code\u003e by \u003ca href=\"https://github.com/jamesbraza\"\u003e\u003ccode\u003e@​jamesbraza\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3656\"\u003ecodespell-project/codespell#3656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd typos found in various software projects by \u003ca href=\"https://github.com/luzpaz\"\u003e\u003ccode\u003e@​luzpaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3640\"\u003ecodespell-project/codespell#3640\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/codespell-project/codespell/pull/3659\"\u003ecodespell-project/codespell#3659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd codespell suggestions for enabke and friends by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3657\"\u003ecodespell-project/codespell#3657\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEND: add \u0026quot;queues\u0026quot; (plural from queue) as possible fix for ques by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3591\"\u003ecodespell-project/codespell#3591\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eagreegate, lesda, realod, colouer by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3665\"\u003ecodespell-project/codespell#3665\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit version in documentation by \u003ca href=\"https://github.com/prchoward\"\u003e\u003ccode\u003e@​prchoward\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3666\"\u003ecodespell-project/codespell#3666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMAINT: Rename CI file and run name by \u003ca href=\"https://github.com/larsoner\"\u003e\u003ccode\u003e@​larsoner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3667\"\u003ecodespell-project/codespell#3667\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epreoccuption-\u0026gt;preoccupation; occuption-\u0026gt;occupation by \u003ca href=\"https://github.com/TheGiraffe3\"\u003e\u003ccode\u003e@​TheGiraffe3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3668\"\u003ecodespell-project/codespell#3668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSuggestions for: checkto, diminsion, waitfor by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3670\"\u003ecodespell-project/codespell#3670\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTypos found in sigstore-python by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3664\"\u003ecodespell-project/codespell#3664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eusgin-\u0026gt;using by \u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3672\"\u003ecodespell-project/codespell#3672\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd typos found in various software projects by \u003ca href=\"https://github.com/luzpaz\"\u003e\u003ccode\u003e@​luzpaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3669\"\u003ecodespell-project/codespell#3669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd coered -\u0026gt; coerced by \u003ca href=\"https://github.com/effigies\"\u003e\u003ccode\u003e@​effigies\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3680\"\u003ecodespell-project/codespell#3680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebackwward(s)-\u0026gt;backward(s), onwward(s)-\u0026gt;onward(s) by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3682\"\u003ecodespell-project/codespell#3682\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/codespell-project/codespell/pull/3685\"\u003ecodespell-project/codespell#3685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etelemetery-\u0026gt;telemetry by \u003ca href=\"https://github.com/august-soderberg\"\u003e\u003ccode\u003e@​august-soderberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3686\"\u003ecodespell-project/codespell#3686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd hexedacimal and similar typos by \u003ca href=\"https://github.com/Akuli\"\u003e\u003ccode\u003e@​Akuli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3692\"\u003ecodespell-project/codespell#3692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd rounted-\u0026gt;routed, rounded and friends by \u003ca href=\"https://github.com/peternewman\"\u003e\u003ccode\u003e@​peternewman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3693\"\u003ecodespell-project/codespell#3693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd symmectric and similar typos by \u003ca href=\"https://github.com/Akuli\"\u003e\u003ccode\u003e@​Akuli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3694\"\u003ecodespell-project/codespell#3694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI on Windows: pip upgrade pip by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3698\"\u003ecodespell-project/codespell#3698\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/codespell-project/codespell/commit/2ccb47ff45ad361a21071a7eedda4c37e6ae8c5a\"\u003e\u003ccode\u003e2ccb47f\u003c/code\u003e\u003c/a\u003e Compat with chardet 7 (\u003ca href=\"https://redirect.github.com/codespell-project/codespell/issues/3886\"\u003e#3886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/4ec53bf6a3e510c64900d5ee838abd99d49b2910\"\u003e\u003ccode\u003e4ec53bf\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/2a4acba3f282f1b5ccb7ad8b57bc991810663a44\"\u003e\u003ccode\u003e2a4acba\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/be17cacc96a5ee3f014e048f5962cfdb7145e096\"\u003e\u003ccode\u003ebe17cac\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/04a071280d56148cab14249ccc8d4181c0066b3c\"\u003e\u003ccode\u003e04a0712\u003c/code\u003e\u003c/a\u003e Bump ruff (\u003ca href=\"https://redirect.github.com/codespell-project/codespell/issues/3879\"\u003e#3879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/583d8796d92eb58e15072db03e5b756be45f638a\"\u003e\u003ccode\u003e583d879\u003c/code\u003e\u003c/a\u003e avoide-\u0026gt;avoid, avoided, avoids,\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/1f59f34d7c6d1642fdb325d9dfa49cf9eb5f692a\"\u003e\u003ccode\u003e1f59f34\u003c/code\u003e\u003c/a\u003e Add correction for 'foudation' to 'foundation'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/e047fdafb8620b08a86349014487886bcd9c2205\"\u003e\u003ccode\u003ee047fda\u003c/code\u003e\u003c/a\u003e Add spelling correction for gather and variants.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/b5cd66de14b8f65b0f45fabbe1c89bd69ea60939\"\u003e\u003ccode\u003eb5cd66d\u003c/code\u003e\u003c/a\u003e respondant-\u0026gt;respondent\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/92125a3814fa6e86cd2055385916ce5186d3e5df\"\u003e\u003ccode\u003e92125a3\u003c/code\u003e\u003c/a\u003e Add detection of ivoice and variants.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/codespell-project/codespell/compare/v2.4.1...v2.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 1.15.0 to 2.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.2\"\u003e2.0.2\u003c/a\u003e - 2026-03-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.1...2.0.2\"\u003eCompare with 2.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBuild\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd py.typed marker to packages (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce46ba314810e46c5168cfab220254908640d6e3\"\u003ece46ba3\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2026-03-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting type parameters through aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/75c1236078bdb38ccaf95330d3c635f8db3806b7\"\u003e75c1236\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/449\"\u003eIssue-449\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/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.2\"\u003e2.0.2\u003c/a\u003e - 2026-03-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.1...2.0.2\"\u003eCompare with 2.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBuild\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd py.typed marker to packages (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce46ba314810e46c5168cfab220254908640d6e3\"\u003ece46ba3\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2026-03-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting type parameters through aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/75c1236078bdb38ccaf95330d3c635f8db3806b7\"\u003e75c1236\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/449\"\u003eIssue-449\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.0\"\u003e2.0.0\u003c/a\u003e - 2026-02-09\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.15.0...2.0.0\"\u003eCompare with 1.15.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cp\u003eThis version removes previously deprecated API:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eExportedName\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003einfer_docstring_style(options)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eparse_auto(options)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eparse_google(options)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eparse_numpy(options)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eparse_sphinx(options)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eassert_git_repo\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eget_latest_tag\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eget_repo_root\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003etmp_worktree\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport merging overload annotations into implementation (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/584cdb52c93d4cdc02f2093f545c6c780491357e\"\u003e584cdb5\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/442\"\u003eIssue-442\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/443\"\u003ePR-443\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for PEP 750 template strings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/59266a9efadd3264b4a0da4b01792703097f5834\"\u003e59266a9\u003c/a\u003e by ellie). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/440\"\u003ePR-440\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKeep newlines in parameter (and other multiline directives) descriptions in Sphinx docstrings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1fde0d2317c9098055ab313c8a0a992032194830\"\u003e1fde0d2\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/808\"\u003eIssue-mkdocstrings-808\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/438\"\u003ePR-438\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003egriffe\u003c/code\u003e imports lazy in CLI (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/4772456ec728a415c52041c542ed3fd28a95b981\"\u003e4772456\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eSplit to \u003ccode\u003egriffe\u003c/code\u003e, \u003ccode\u003egriffecli\u003c/code\u003e and \u003ccode\u003egriffelib\u003c/code\u003e uv workspaces (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/162c31c230d22eb87cea4ec38ed4778bbe990103\"\u003e162c31c\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/408\"\u003eIssue-408\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/434\"\u003ePR-434\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove deprecated code (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/dcb075e278319a523e87fd0ae3ca5d21537d665f\"\u003edcb075e\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/433\"\u003ePR-433\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/griffe/commit/6f30ebb60f11c419c2b0c703faa09163a39552a3\"\u003e\u003ccode\u003e6f30ebb\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce46ba314810e46c5168cfab220254908640d6e3\"\u003e\u003ccode\u003ece46ba3\u003c/code\u003e\u003c/a\u003e build: Add py.typed marker to packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/006282cf920109782fec91f9b5c4437cfbd02bac\"\u003e\u003ccode\u003e006282c\u003c/code\u003e\u003c/a\u003e chore: Fix publish duty\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8df2c4061d01f8c7a3ded03d63505fef0052092a\"\u003e\u003ccode\u003e8df2c40\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1236192681a9492133efd01bcd77d018fa3d4630\"\u003e\u003ccode\u003e1236192\u003c/code\u003e\u003c/a\u003e chore: Update ty comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/75c1236078bdb38ccaf95330d3c635f8db3806b7\"\u003e\u003ccode\u003e75c1236\u003c/code\u003e\u003c/a\u003e fix: Allow setting type parameters through aliases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/862a891818d7182204e213ef216b6b5f3c6dc106\"\u003e\u003ccode\u003e862a891\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2666aaabe9b93f70c3dcde46ac284251a065a5c1\"\u003e\u003ccode\u003e2666aaa\u003c/code\u003e\u003c/a\u003e chore: Update sponsors section in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/e30c32143149ab124f3ade14523201b80a9cbfd9\"\u003e\u003ccode\u003ee30c321\u003c/code\u003e\u003c/a\u003e style: Format code for Python 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/051394aa21cd0884a7480a6892c07d62bf0ca451\"\u003e\u003ccode\u003e051394a\u003c/code\u003e\u003c/a\u003e chore: Add back title to type-check duty\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.15.0...2.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.6.0 to 0.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-include-markdown-plugin` from 7.2.1 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/releases\"\u003emkdocs-include-markdown-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.2.2\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix natural order by extension not correctly applied\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/98cf8e8dee370cf332ed00cd8426d2ffcfa07065\"\u003e\u003ccode\u003e98cf8e8\u003c/code\u003e\u003c/a\u003e Fix natural order by extension not correctly applied (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/292\"\u003e#292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/compare/v7.2.1...v7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-literate-nav` from 0.6.2 to 0.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/releases\"\u003emkdocs-literate-nav's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/pull/39\"\u003eoprypin/mkdocs-literate-nav#39\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ehttps://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.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/oprypin/mkdocs-literate-nav/commit/b91268c263f61e38a7e27f77ccf38ec287e0c0b5\"\u003e\u003ccode\u003eb91268c\u003c/code\u003e\u003c/a\u003e v0.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/cee9ec49a1523036081378a39bda9fa014432526\"\u003e\u003ccode\u003ecee9ec4\u003c/code\u003e\u003c/a\u003e Exclude properdocs when testing minimal dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/ea523f5864f59fb7939f84cd4400df67280ad52c\"\u003e\u003ccode\u003eea523f5\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/258b15a15a3e25cedc816d0a5a971acfdb86541e\"\u003e\u003ccode\u003e258b15a\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-section-index` from 0.3.10 to 0.3.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/releases\"\u003emkdocs-section-index's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeclare support of \u003ca href=\"https://pypi.org/project/properdocs-theme-readthedocs/\"\u003eproperdocs-theme-readthedocs\u003c/a\u003e, such that there is no warning printed for it - \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/fefc63086bfe41d0bd91f7541721ab4f96db25dc\"\u003ehttps://github.com/oprypin/mkdocs-section-index/commit/fefc63086bfe41d0bd91f7541721ab4f96db25dc\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.11...v0.3.12\"\u003ehttps://github.com/oprypin/mkdocs-section-index/compare/v0.3.11...v0.3.12\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/pull/27\"\u003eoprypin/mkdocs-section-index#27\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ehttps://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\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/oprypin/mkdocs-section-index/commit/869bbda96ac29b178cddfff57cabe8884563afde\"\u003e\u003ccode\u003e869bbda\u003c/code\u003e\u003c/a\u003e v0.3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/5ec1820d48bed54a880405edc93f1ce682e004d6\"\u003e\u003ccode\u003e5ec1820\u003c/code\u003e\u003c/a\u003e Fix a doc link so it doesn't only work on GitHub\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/2a898e8022f22bfd86ba5b8c60e0b0a0cc6089e9\"\u003e\u003ccode\u003e2a898e8\u003c/code\u003e\u003c/a\u003e Update docs dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/fefc63086bfe41d0bd91f7541721ab4f96db25dc\"\u003e\u003ccode\u003efefc630\u003c/code\u003e\u003c/a\u003e Declare support of properdocs-theme-readthedocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/4d758be189becb315f12607146737c83ca922a3b\"\u003e\u003ccode\u003e4d758be\u003c/code\u003e\u003c/a\u003e Update deps, enable more lints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/8cea221e6781c7e616cba249f46c957408a91590\"\u003e\u003ccode\u003e8cea221\u003c/code\u003e\u003c/a\u003e Drop Python 3.9, switch doc building to ProperDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/a8235f6f8eb5927b966a3aaea8afe5fa161ecece\"\u003e\u003ccode\u003ea8235f6\u003c/code\u003e\u003c/a\u003e v0.3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/ac66dfda53834d79ce8e0af6f340dddd7cde2bf9\"\u003e\u003ccode\u003eac66dfd\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/issues/27\"\u003e#27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/32866cd83993ee3eefbac0fcc13911692796d8f6\"\u003e\u003ccode\u003e32866cd\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocstrings` from 1.0.3 to 1.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.4\"\u003e1.0.4\u003c/a\u003e - 2026-04-15\u003c/h2\u003e\n\u003cp\u003e\u003c!-- ra...\n\n_Description has been truncated_","html_url":"https://github.com/tektronix/TekHSI/pull/141","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tektronix%2FTekHSI/issues/141","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/141/packages"},{"uuid":"4257918809","node_id":"PR_kwDOMKklas7SHoUQ","number":148,"state":"closed","title":"Update mkdocs-gen-files requirement from \u003e=0.5 to \u003e=0.6.1","user":"dependabot[bot]","labels":["Add/Change dependencies","dependencies","python","Change Linters Configuration"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-18T08:58:10.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T21:11:49.000Z","updated_at":"2026-04-18T08:58:19.000Z","time_to_close":387981,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"mkdocs-gen-files","old_version":"\u003e=0.5","new_version":"\u003e=0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/bitcaster-io/bitcaster/pull/148","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcaster-io%2Fbitcaster/issues/148","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/148/packages"},{"uuid":"4255029634","node_id":"PR_kwDOOWSacc7R_XND","number":403,"state":"closed","title":"Update mkdocs-gen-files requirement from ~=0.5.0 to \u003e=0.5,\u003c0.7","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-14T18:41:38.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T13:22:10.000Z","updated_at":"2026-04-14T18:41:48.000Z","time_to_close":105568,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"mkdocs-gen-files","old_version":"~=0.5.0","new_version":"\u003e=0.5,\u003c0.7","repository_url":"https://github.com/oprypin/mkdocs-gen-files"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/vllm-project/speculators/pull/403","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vllm-project%2Fspeculators/issues/403","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/403/packages"},{"uuid":"4186743753","node_id":"PR_kwDOBnbX-M7PQKqs","number":289,"state":"open","title":"build(deps): bump mkdocs-gen-files from 0.6.0 to 0.6.1","user":"dependabot[bot]","labels":["dependencies","python:uv","size/XS","type/dependencies","status/needs-review"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-01T12:59:58.000Z","updated_at":"2026-04-03T17:50:22.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"mkdocs-gen-files","old_version":"0.6.0","new_version":"0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"}],"path":null,"ecosystem":"pip"},"body":"Bumps [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) from 0.6.0 to 0.6.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/jacksonpradolima/gsp-py/pull/289","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacksonpradolima%2Fgsp-py/issues/289","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/289/packages"},{"uuid":"4170747933","node_id":"PR_kwDOQ3AX587Onzf5","number":323,"state":"open","title":"chore(deps)(deps-dev): bump the dev-dependencies group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["automated","dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-30T13:27:21.000Z","updated_at":"2026-04-06T12:51:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps-dev): bump","group_name":"dev-dependencies","update_count":11,"packages":[{"name":"ty","old_version":"0.0.18","new_version":"0.0.24","repository_url":"https://github.com/astral-sh/ty"},{"name":"ruff","old_version":"0.15.4","new_version":"0.15.7","repository_url":"https://github.com/astral-sh/ruff"},{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"arize-phoenix-client","old_version":"1.29.0","new_version":"2.1.0","repository_url":"https://github.com/Arize-ai/phoenix"},{"name":"mkdocs-material","old_version":"9.7.2","new_version":"9.7.6","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocs-gen-files","old_version":"0.6.0","new_version":"0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-literate-nav","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/oprypin/mkdocs-literate-nav"},{"name":"mkdocs-section-index","old_version":"0.3.10","new_version":"0.3.11","repository_url":"https://github.com/oprypin/mkdocs-section-index"},{"name":"cairosvg","old_version":"2.8.2","new_version":"2.9.0","repository_url":"https://github.com/Kozea/CairoSVG"},{"name":"gepa","old_version":"0.1.0","new_version":"0.1.1","repository_url":"https://github.com/gepa-ai/gepa"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [ty](https://github.com/astral-sh/ty) | `0.0.18` | `0.0.24` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.4` | `0.15.7` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [arize-phoenix-client](https://github.com/Arize-ai/phoenix) | `1.29.0` | `2.1.0` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.7.2` | `9.7.6` |\n| [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) | `0.6.0` | `0.6.1` |\n| [mkdocs-literate-nav](https://github.com/oprypin/mkdocs-literate-nav) | `0.6.2` | `0.6.3` |\n| [mkdocs-section-index](https://github.com/oprypin/mkdocs-section-index) | `0.3.10` | `0.3.11` |\n| [cairosvg](https://github.com/Kozea/CairoSVG) | `2.8.2` | `2.9.0` |\n| [gepa](https://github.com/gepa-ai/gepa) | `0.1.0` | `0.1.1` |\n\n\nUpdates `ty` from 0.0.18 to 0.0.24\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/releases\"\u003ety's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.24\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003eTypedDict\u003c/code\u003e subscripts for unknown keys return \u003ccode\u003eUnknown\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23926\"\u003e#23926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix overflow with recursive \u003ccode\u003eTypeIs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23784\"\u003e#23784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix variance of frozen dataclass-transform models (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23931\"\u003e#23931\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove \u003ca href=\"https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_semanticTokens\"\u003esemantic token\u003c/a\u003e classification for attribute access on union types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23841\"\u003e#23841\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove performance and correctness by avoiding inferring intersection types for call arguments as a result of bidirectional inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23933\"\u003e#23933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow keyword arguments when unpacking dictionary instances (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23436\"\u003e#23436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDiscover \u003ccode\u003e/usr/local/lib\u003c/code\u003e dist-packages on Debian/Ubuntu (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23797\"\u003e#23797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23963\"\u003e#23963\u003c/a\u003e). \u003ca href=\"https://github.com/python/typeshed/compare/fa659b1def704dea3dc8e25c7857b23eac69df4d...f8f0794d0fe249c06dc9f31a004d85be6cca6ced\"\u003eTypeshed diff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ty 0.0.24\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ty 0.0.24\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-aarch64-apple-darwin.tar.gz\"\u003ety-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-x86_64-apple-darwin.tar.gz\"\u003ety-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-aarch64-pc-windows-msvc.zip\"\u003ety-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-i686-pc-windows-msvc.zip\"\u003ety-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-x86_64-pc-windows-msvc.zip\"\u003ety-x86_64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-x86_64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-aarch64-unknown-linux-gnu.tar.gz\"\u003ety-aarch64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-aarch64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-i686-unknown-linux-gnu.tar.gz\"\u003ety-i686-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-i686-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-powerpc64-unknown-linux-gnu.tar.gz\"\u003ety-powerpc64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ePPC64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-powerpc64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-powerpc64le-unknown-linux-gnu.tar.gz\"\u003ety-powerpc64le-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ePPC64LE Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-powerpc64le-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-s390x-unknown-linux-gnu.tar.gz\"\u003ety-s390x-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eS390x Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-s390x-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- 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/ty/blob/main/CHANGELOG.md\"\u003ety's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.24\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003eTypedDict\u003c/code\u003e subscripts for unknown keys return \u003ccode\u003eUnknown\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23926\"\u003e#23926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix overflow with recursive \u003ccode\u003eTypeIs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23784\"\u003e#23784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix variance of frozen dataclass-transform models (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23931\"\u003e#23931\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove \u003ca href=\"https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_semanticTokens\"\u003esemantic token\u003c/a\u003e classification for attribute access on union types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23841\"\u003e#23841\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove performance and correctness by avoiding inferring intersection types for call arguments as a result of bidirectional inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23933\"\u003e#23933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow keyword arguments when unpacking dictionary instances (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23436\"\u003e#23436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDiscover \u003ccode\u003e/usr/local/lib\u003c/code\u003e dist-packages on Debian/Ubuntu (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23797\"\u003e#23797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23963\"\u003e#23963\u003c/a\u003e). \u003ca href=\"https://github.com/python/typeshed/compare/fa659b1def704dea3dc8e25c7857b23eac69df4d...f8f0794d0fe249c06dc9f31a004d85be6cca6ced\"\u003eTypeshed diff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce fast path for protocol non-assignability (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23952\"\u003e#23952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved generic-solver performance in cases involving overload sets (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23881\"\u003e#23881\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/Geo5\"\u003e\u003ccode\u003e@​Geo5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibraheemdev\"\u003e\u003ccode\u003e@​ibraheemdev\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/dcreager\"\u003e\u003ccode\u003e@​dcreager\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ollema\"\u003e\u003ccode\u003e@​ollema\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sharkdp\"\u003e\u003ccode\u003e@​sharkdp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-13.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix false-positive diagnostics for PEP-604 union annotations on attribute targets on Python 3.9 when \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e is active (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23915\"\u003e#23915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edataclass_transform\u003c/code\u003e: Respect \u003ccode\u003ekw_only\u003c/code\u003e overwrites in dataclasses (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23930\"\u003e#23930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix too-many-cycle panics when inferring loop variables with \u003ccode\u003eLiteral\u003c/code\u003e types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23875\"\u003e#23875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_foldingRange\"\u003efolding range\u003c/a\u003e classification of lines starting with \u003ccode\u003e#\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23831\"\u003e#23831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ca href=\"https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_foldingRange\"\u003efolding ranges\u003c/a\u003e for notebooks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23830\"\u003e#23830\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/ty/commit/876233049afc2530181f5b8af390c6d57c65bb80\"\u003e\u003ccode\u003e8762330\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.24 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3084\"\u003e#3084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/a6f24e14c0d41b17b44ea514b230a25bad411b65\"\u003e\u003ccode\u003ea6f24e1\u003c/code\u003e\u003c/a\u003e Update prek dependencies (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3045\"\u003e#3045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/95150e7634e4b863223cea12e96f48baa23625d3\"\u003e\u003ccode\u003e95150e7\u003c/code\u003e\u003c/a\u003e Typing FAQ: New entry explaining invariance (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3073\"\u003e#3073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/bc9e8a839385b3ee5a45d3df6e5f79885dcad17d\"\u003e\u003ccode\u003ebc9e8a8\u003c/code\u003e\u003c/a\u003e Remove the repository code of conduct in favor of the organization one (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/3d12b2e9f81cd98ccc27f0285f8056da9bb999d5\"\u003e\u003ccode\u003e3d12b2e\u003c/code\u003e\u003c/a\u003e Update astral-sh/setup-uv action to v7.6.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/64fe9c2fd1610cc6b25b1dfda0a8bb7694fc9467\"\u003e\u003ccode\u003e64fe9c2\u003c/code\u003e\u003c/a\u003e Update actions/attest-build-provenance action to v4 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3046\"\u003e#3046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/86d05eb2a7da77605d42ad86a5adbde131431047\"\u003e\u003ccode\u003e86d05eb\u003c/code\u003e\u003c/a\u003e Update docker/setup-buildx-action action to v4 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/eb3f320a525075daa431a0ed19d5cbff12dc5c2b\"\u003e\u003ccode\u003eeb3f320\u003c/code\u003e\u003c/a\u003e Update docker/metadata-action action to v6 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3049\"\u003e#3049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/7da93b86f69724734cfa4a90d3df3ca3b44bc4e4\"\u003e\u003ccode\u003e7da93b8\u003c/code\u003e\u003c/a\u003e Update docker/login-action action to v4 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3048\"\u003e#3048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/fa4db72937dacb89a6271327a7433b01322136f2\"\u003e\u003ccode\u003efa4db72\u003c/code\u003e\u003c/a\u003e Update docker/build-push-action action to v7 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ty/compare/0.0.18...0.0.24\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.4 to 0.15.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.7\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisplay output severity in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23845\"\u003e#23845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't show \u003ccode\u003enoqa\u003c/code\u003e hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't return code actions for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23905\"\u003e#23905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd company AI policy to contributing guide (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24021\"\u003e#24021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument editor features for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23924\"\u003e#23924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse PEP 639 license information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19661\"\u003e#19661\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/tmimmanuel\"\u003e\u003ccode\u003e@​tmimmanuel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\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/statxc\"\u003e\u003ccode\u003e@​statxc\u003c/code\u003e\u003c/a\u003e\u003c/li\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/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.7\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.7/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.15.7/ruff-installer.ps1 | iex\u0026quot;\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.7\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisplay output severity in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23845\"\u003e#23845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't show \u003ccode\u003enoqa\u003c/code\u003e hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't return code actions for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23905\"\u003e#23905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd company AI policy to contributing guide (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24021\"\u003e#24021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument editor features for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23924\"\u003e#23924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse PEP 639 license information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19661\"\u003e#19661\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/tmimmanuel\"\u003e\u003ccode\u003e@​tmimmanuel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\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/statxc\"\u003e\u003ccode\u003e@​statxc\u003c/code\u003e\u003c/a\u003e\u003c/li\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/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-12.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003elazy\u003c/code\u003e import parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23755\"\u003e#23755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for star-unpacking of comprehensions (PEP 798) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23788\"\u003e#23788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject semantic syntax errors for lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23757\"\u003e#23757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop a few rules from the preview default set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23879\"\u003e#23879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag \u003ccode\u003eVariable.get()\u003c/code\u003e calls outside of task execution context (\u003ccode\u003eAIR003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23584\"\u003e#23584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag runtime-varying values in DAG/task constructor arguments (\u003ccode\u003eAIR304\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23631\"\u003e#23631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003edelattr-with-constant\u003c/code\u003e (\u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23737\"\u003e#23737\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/0ef39de46c006994fb1e90f7bd4ba09c0b2c1f79\"\u003e\u003ccode\u003e0ef39de\u003c/code\u003e\u003c/a\u003e Bump 0.15.7 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24049\"\u003e#24049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/beb543b5c666be9fd3f13c88df818f202b63e9d0\"\u003e\u003ccode\u003ebeb543b\u003c/code\u003e\u003c/a\u003e [ty] ecosystem-analyzer: Fail on newly panicking projects (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24043\"\u003e#24043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/378fe730929ccd67a7f2426b3012093da814b31d\"\u003e\u003ccode\u003e378fe73\u003c/code\u003e\u003c/a\u003e Don't show noqa hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b5665bd18eecab4d3b5ab1256b36904cd99a4c57\"\u003e\u003ccode\u003eb5665bd\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6e20f2219020e61eeae29458013d2d3684f75a79\"\u003e\u003ccode\u003e6e20f22\u003c/code\u003e\u003c/a\u003e test: migrate \u003ccode\u003eshow_settings\u003c/code\u003e and \u003ccode\u003eversion\u003c/code\u003e tests to use \u003ccode\u003eCliTest\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23702\"\u003e#23702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f99b284c1fe1399a82da7f6669467488017d44a7\"\u003e\u003ccode\u003ef99b284\u003c/code\u003e\u003c/a\u003e Drain file watcher events during test setup (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24030\"\u003e#24030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/744c996c35016a8c0e05aa2823f4f822ac7b842c\"\u003e\u003ccode\u003e744c996\u003c/code\u003e\u003c/a\u003e [ty] Filter out unsatisfiable inference attempts during generic call narrowin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/16160958bdafb6106b6fffc72ffe2e4db0c0ac33\"\u003e\u003ccode\u003e1616095\u003c/code\u003e\u003c/a\u003e [ty] Avoid inferring intersection types for call arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23933\"\u003e#23933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7f275f431bf8c60d59601b74d441e9f4bef89f35\"\u003e\u003ccode\u003e7f275f4\u003c/code\u003e\u003c/a\u003e [ty] Pin mypy_primer in \u003ccode\u003esetup_primer_project.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24020\"\u003e#24020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7255e362e4b171a641222279cd28d2ca88a74fdc\"\u003e\u003ccode\u003e7255e36\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.4...0.15.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.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.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `arize-phoenix-client` from 1.29.0 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Arize-ai/phoenix/releases\"\u003earize-phoenix-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003earize-phoenix-client: v2.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/compare/arize-phoenix-client-v2.0.1...arize-phoenix-client-v2.1.0\"\u003e2.1.0\u003c/a\u003e (2026-03-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add span filter params to getSpans (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/12203\"\u003e#12203\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/91949d7aa63acff7110ec79518d9ad9ce711e277\"\u003e91949d7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003earize-phoenix-client: v2.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/compare/arize-phoenix-client-v2.0.0...arize-phoenix-client-v2.0.1\"\u003e2.0.1\u003c/a\u003e (2026-03-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add server version gating with capability requirements (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/12122\"\u003e#12122\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/9769f906ae0caef8e19f88e25e0ea545ee399d72\"\u003e9769f90\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003earize-phoenix-client: v2.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/compare/arize-phoenix-client-v1.31.0...arize-phoenix-client-v2.0.0\"\u003e2.0.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e \u003ccode\u003eclient.annotations\u003c/code\u003e has been removed. Use \u003ccode\u003eclient.spans\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd Cerebras, Fireworks, Groq, and Moonshot as first-class providers (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11938\"\u003e#11938\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/df94203fa621bae9928d96249382380aa4be5443\"\u003edf94203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd Perplexity and Together AI as built-in providers in the playground (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11952\"\u003e#11952\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/aeefe1970405c7fcb48254dce92dcfc1824fcaa3\"\u003eaeefe19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd trace_ids parameter to client getSpans methods (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11945\"\u003e#11945\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/6d896e32ce1d4ed2038342ae67d678de2163e8f0\"\u003e6d896e3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add session conversation API to Python and TypeScript clients (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11974\"\u003e#11974\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/83b7f68782b4994a741244c478d5d561e4817bcb\"\u003e83b7f68\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e propagate parent_id filter to JS and Python clients (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11975\"\u003e#11975\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/d951320f704545a516ccd63d2acbc88a35685491\"\u003ed951320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e remove deprecated \u003ccode\u003eclient.annotations\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11983\"\u003e#11983\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/6203c31fc59579dfbe927d47ca0d03d162d7fb77\"\u003e6203c31\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eserver:\u003c/strong\u003e add DELETE session API  (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11976\"\u003e#11976\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/d4a865ae6bc1511b2b433b408de2f75bf71abc7b\"\u003ed4a865a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003earize-phoenix-client: v1.31.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/compare/arize-phoenix-client-v1.30.0...arize-phoenix-client-v1.31.0\"\u003e1.31.0\u003c/a\u003e (2026-03-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add session retrieval methods to Python client SDK (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11879\"\u003e#11879\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/3669813c7486b128d8858de6ef1cffa3e8d5c020\"\u003e3669813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add timeout and list_sessions alias to sessions API (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11897\"\u003e#11897\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/a4befc0f6bfe3a0641eca58eb2f35226ec54f4d6\"\u003ea4befc0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003earize-phoenix-client: v1.30.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/compare/arize-phoenix-client-v1.29.1...arize-phoenix-client-v1.30.0\"\u003e1.30.0\u003c/a\u003e (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd GET endpoints for sessions REST API (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11724\"\u003e#11724\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/2a1f14846cec30bb9b892114f3510e740154bcc0\"\u003e2a1f148\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/Arize-ai/phoenix/blob/main/CHANGELOG.md\"\u003earize-phoenix-client's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/compare/arize-phoenix-v12.0.0...arize-phoenix-v12.1.0\"\u003e12.1.0\u003c/a\u003e (2025-09-30)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecomponents:\u003c/strong\u003e switch (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9678\"\u003e#9678\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/ac061b5b73f8a608f50415be73c287e8b427d6f3\"\u003eac061b5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edataset label graphql(create, delete, read) (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9702\"\u003e#9702\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/f52744dd1e6fbe3eb3742457241246f849dfe9b9\"\u003ef52744d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emigrate from bitnami chart to groundhog2k (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9583\"\u003e#9583\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/f3be6317c960a66916de568dea98dcf914521221\"\u003ef3be631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport Claude Sonnet 4.5 (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9700\"\u003e#9700\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/2056f906938b5894b22cecaaaeaf79dec7712d02\"\u003e2056f90\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emissing root path for logout (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9707\"\u003e#9707\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/e14f4f6dd33472a048a19df26881d8184822388f\"\u003ee14f4f6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eplayground:\u003c/strong\u003e ensure playground dataset examples load when first switching to dataset mode (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9710\"\u003e#9710\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/452b06088af30ba6e09458ffa265e3e1bb082eeb\"\u003e452b060\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/compare/arize-phoenix-v11.38.0...arize-phoenix-v12.0.0\"\u003e12.0.0\u003c/a\u003e (2025-09-29)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eversion 12 (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9695\"\u003e#9695\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd annotation columns to sessions table (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9551\"\u003e#9551\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/212513dce2cdfcff5411ddd9dc350da0b131e21f\"\u003e212513d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd db table and graphql mutations for session annotations (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/8993\"\u003e#8993\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/092c067616477888e571635bcb575c6f97baf6e2\"\u003e092c067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd junction table for taking snapshots of examples when inserting an experiment (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9609\"\u003e#9609\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/f5714416052560e96182d01e23286032de575cb1\"\u003ef571441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd user_id on datasets and dataset_versions table (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9650\"\u003e#9650\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/0230f8f38a7a1cb5ba91b7035d411d885fffa97b\"\u003e0230f8f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAssign examples to dataset splits (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9606\"\u003e#9606\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/ec3f6fd5044b3e3fae1f04b5e56f5cc9d2692560\"\u003eec3f6fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclient methods for adding trace and session annotations (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9369\"\u003e#9369\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/e9b29ef0b50eb30c64d7e3c557d6264d5652d3fc\"\u003ee9b29ef\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edataset labels migration (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9409\"\u003e#9409\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/77011436e85f7ad35e2e4d032d248d1a4ad72be4\"\u003e7701143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edataset split and examples migration (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9360\"\u003e#9360\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/045f8a13b0fdc3af030d176939624e35add3f78f\"\u003e045f8a1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDataset Splits Add Dialog UI (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9601\"\u003e#9601\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/914cf640409936d378b6b9b959573b5858017ac5\"\u003e914cf64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edataset splits backend (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9490\"\u003e#9490\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/dc45cd2f44f506592cbd98d89b38e044d5447026\"\u003edc45cd2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edb:\u003c/strong\u003e add row for viewer role (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9648\"\u003e#9648\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/efbbf521c9b503bfa188eecef0228a1eb56c2d60\"\u003eefbbf52\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edisplay splits on examples table (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9602\"\u003e#9602\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/694d1e088d59c2aada71a822e2ae468aa3373047\"\u003e694d1e0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExperiment migration (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9279\"\u003e#9279\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/7151cd5c0e4234461f6a6c8bb5069a16565c47e2\"\u003e7151cd5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eexperiment-tags on experiment and datasets (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9406\"\u003e#9406\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/5afe0dc9c3c7cf0bd86a18e0513553ec22654db8\"\u003e5afe0dc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexperiments:\u003c/strong\u003e show repetitions in the table (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9669\"\u003e#9669\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/dfb05cbf8beff4820bd8bd173ba5a2429db7137d\"\u003edfb05cb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epin the minimum version of the client (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9666\"\u003e#9666\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/54ffb45923c3e24491f3f08ed935ca3e61b6f254\"\u003e54ffb45\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePlayground migration experiments record user_id (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9292\"\u003e#9292\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/3b0ca07da1e963c766b7612099a353fbc505c05a\"\u003e3b0ca07\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate to google genai sdk (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9591\"\u003e#9591\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/b50e82a0ff20cc83a380125b38e7d783e84effcc\"\u003eb50e82a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse composite primary key for crosswalk tables (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9636\"\u003e#9636\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/cc0eac1dd8df2a6323e2022dbd74ab674f992aea\"\u003ecc0eac1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eversion 12 (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9695\"\u003e#9695\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/8529fe31f7ef431c7074a838ce08285800058805\"\u003e8529fe3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd big int indexes and user id indexes (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9693\"\u003e#9693\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/7c3393692939a5981881fd6036efc032cf53f642\"\u003e7c33936\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/Arize-ai/phoenix/commit/ffcfaaef0a0d42b8142a6ada7b74a1151780c3e8\"\u003e\u003ccode\u003effcfaae\u003c/code\u003e\u003c/a\u003e chore(main): release arize-phoenix-client 2.1.0 (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/12205\"\u003e#12205\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/7507b49283ca1838a8d6cd4132749ad28cfef89c\"\u003e\u003ccode\u003e7507b49\u003c/code\u003e\u003c/a\u003e chore(js): update versions (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/12204\"\u003e#12204\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/91949d7aa63acff7110ec79518d9ad9ce711e277\"\u003e\u003ccode\u003e91949d7\u003c/code\u003e\u003c/a\u003e feat(client): add span filter params to getSpans (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/12203\"\u003e#12203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/c32665a82df905ac564eb7a58e271311ae3cc511\"\u003e\u003ccode\u003ec32665a\u003c/code\u003e\u003c/a\u003e refactor: remove light darker tokens (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/12182\"\u003e#12182\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/42a7a1b2920580f4dbd3182df88575b277fe2b02\"\u003e\u003ccode\u003e42a7a1b\u003c/code\u003e\u003c/a\u003e feat(onboarding): add Python integration snippets (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/12197\"\u003e#12197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/6d4e8d7e863291cc60ceca7704d5588ddbfdead1\"\u003e\u003ccode\u003e6d4e8d7\u003c/code\u003e\u003c/a\u003e feat: Add TypeScript onboarding snippets for LangChain, OpenAI, Anthropic, an...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/565041c17d5a2027fe796d2f84c44e39af0948a3\"\u003e\u003ccode\u003e565041c\u003c/code\u003e\u003c/a\u003e docs: refine llms.txt: expand coverage, drop integrations, optimize concisene...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/35891a26f7ad8f747c3f03ae3999e954b252ce9f\"\u003e\u003ccode\u003e35891a2\u003c/code\u003e\u003c/a\u003e chore(js): update versions (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/12190\"\u003e#12190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/c8e618770c46c9ec350ade8669da28a584f951a8\"\u003e\u003ccode\u003ec8e6187\u003c/code\u003e\u003c/a\u003e chore(ui): enable jsx-a11y plugin and fix storybook violations (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11684\"\u003e#11684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/d320b93eb23410505a02cebea68925c1c712612a\"\u003e\u003ccode\u003ed320b93\u003c/code\u003e\u003c/a\u003e fix: migrate llms.txt to standard llmstxt.org format (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/12189\"\u003e#12189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Arize-ai/phoenix/compare/arize-phoenix-client-v1.29.0...arize-phoenix-client-v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.7.2 to 9.7.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.6\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.5\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.4\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed environment (recommended by \u003ca href=\"https://github.com/caveeroo\"\u003e\u003ccode\u003e@​caveeroo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\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/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.6 (2026-03-19)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.5 (2026-03-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.4 (2026-03-03)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed environment\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.3 (2026-02-24)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8567\"\u003e#8567\u003c/a\u003e: Print MkDocs 2.0 incompatibility warning to stderr\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.2 (2026-02-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to 'mkdocs build' about impending MkDocs 2.0 incompatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\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/squidfunk/mkdocs-material/commit/6c52ed6289b171a153875491f059a94819ec3e10\"\u003e\u003ccode\u003e6c52ed6\u003c/code\u003e\u003c/a\u003e Prepare 9.7.6 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/51d9b76636431814df924bcda27485b16023978b\"\u003e\u003ccode\u003e51d9b76\u003c/code\u003e\u003c/a\u003e Automatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/6f9a48b4048650341a654d9757da57fc1e3e323d\"\u003e\u003ccode\u003e6f9a48b\u003c/code\u003e\u003c/a\u003e Updated links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/00b9933e5821fd852700268767d4fd53ae1ce1cb\"\u003e\u003ccode\u003e00b9933\u003c/code\u003e\u003c/a\u003e Prepare 9.7.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/37683d12c9cd62309aa917237741ee0886709b7c\"\u003e\u003ccode\u003e37683d1\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/199e31598055d5d6ea538618804c7558f5d81047\"\u003e\u003ccode\u003e199e315\u003c/code\u003e\u003c/a\u003e Updated warning message to clarify relation to MkDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/10258334eb13545e6d708cf121c3867bfbdb6017\"\u003e\u003ccode\u003e1025833\u003c/code\u003e\u003c/a\u003e Limited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/1532f523f6c650c9d6fd16229ee8bec0759b4151\"\u003e\u003ccode\u003e1532f52\u003c/code\u003e\u003c/a\u003e Added update log to blog post\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/d0c8b2862a966f5f268d4a4c35bb4fcfccebb9b1\"\u003e\u003ccode\u003ed0c8b28\u003c/code\u003e\u003c/a\u003e Updated dependencies to fix vulnerabilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/71d48699a0e2bef231e796818c4dc20b230a5f45\"\u003e\u003ccode\u003e71d4869\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.7.2...9.7.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.6.0 to 0.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-literate-nav` from 0.6.2 to 0.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/releases\"\u003emkdocs-literate-nav's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/pull/39\"\u003eoprypin/mkdocs-literate-nav#39\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ehttps://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.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/oprypin/mkdocs-literate-nav/commit/b91268c263f61e38a7e27f77ccf38ec287e0c0b5\"\u003e\u003ccode\u003eb91268c\u003c/code\u003e\u003c/a\u003e v0.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/cee9ec49a1523036081378a39bda9fa014432526\"\u003e\u003ccode\u003ecee9ec4\u003c/code\u003e\u003c/a\u003e Exclude properdocs when testing minimal dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/ea523f5864f59fb7939f84cd4400df67280ad52c\"\u003e\u003ccode\u003eea523f5\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/258b15a15a3e25cedc816d0a5a971acfdb86541e\"\u003e\u003ccode\u003e258b15a\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-section-index` from 0.3.10 to 0.3.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/releases\"\u003emkdocs-section-index's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/pull/27\"\u003eoprypin/mkdocs-section-index#27\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ehttps://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\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/oprypin/mkdocs-section-index/commit/a8235f6f8eb5927b966a3aaea8afe5fa161ecece\"\u003e\u003ccode\u003ea8235f6\u003c/code\u003e\u003c/a\u003e v0.3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/ac66dfda53834d79ce8e0af6f340dddd7cde2bf9\"\u003e\u003ccode\u003eac66dfd\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/issues/27\"\u003e#27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/32866cd83993ee3eefbac0fcc13911692796d8f6\"\u003e\u003ccode\u003e32866cd\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cairosvg` from 2.8.2 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/Kozea/CairoSVG/releases\"\u003ecairosvg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eWARNING:\u003c/strong\u003e this is a security update.\u003c/p\u003e\n\u003cp\u003eUsing a lot of recursively nested use tags could lead to long rendering times with relatively small inputs.\nCairoSVG now stops rendering when more than 100k use tags are rendered.\u003c/p\u003e\n\u003cp\u003eUsing the --unsafe option allows to render larger documents.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support of Python 3.9, add support of Python 3.14\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/Kozea/CairoSVG/blob/main/NEWS.rst\"\u003ecairosvg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion 2.9.0 released on 2026-03-13\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eWARNING:\u003c/strong\u003e this is a security update.\u003c/p\u003e\n\u003cp\u003eUsing a lot of recursively nested use tags could lead to long rendering times with\nrelatively small inputs. CairoSVG now stops rendering when more than 100k use tags are\nrendered.\u003c/p\u003e\n\u003cp\u003eUsing the --unsafe option allows to render larger documents.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support of Python 3.9, add support of Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kozea/CairoSVG/commit/fe5cae58e929e6d4337442c96ab415d1a7230905\"\u003e\u003ccode\u003efe5cae5\u003c/code\u003e\u003c/a\u003e Version 2.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kozea/CairoSVG/commit/6dde8685ed3f19837767bce7a13a5491e3d0e0bf\"\u003e\u003ccode\u003e6dde868\u003c/code\u003e\u003c/a\u003e Abort when more than 100k referenced elements are rendered\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kozea/CairoSVG/commit/a6b3a98ca17911967e4682d2e7f6590073a76175\"\u003e\u003ccode\u003ea6b3a98\u003c/code\u003e\u003c/a\u003e Cut long line again\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kozea/CairoSVG/commit/ce8b51d8ad1427b9276b4fc6bb4583c72c641f9c\"\u003e\u003ccode\u003ece8b51d\u003c/code\u003e\u003c/a\u003e Cut long line\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kozea/CairoSVG/commit/b7818c927afc78cac54a763b65e7c71b7e30fedc\"\u003e\u003ccode\u003eb7818c9\u003c/code\u003e\u003c/a\u003e Clarify unsafe option scope without removing security warning\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kozea/CairoSVG/compare/2.8.2...2.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gepa` from 0.1.0 to 0.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gepa-ai/gepa/releases\"\u003egepa's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.1\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003eCandidate Tree Visualization\u003c/strong\u003e — GEPA now generates an interactive HTML lineage tree of all candidates explored during optimization. Nodes are color-coded by role (best, Pareto front, seed) with hover previews and click-to-pin tooltips for reading full prompt text. The tree is...\n\n_Description has been truncated_","html_url":"https://github.com/Alberto-Codes/gepa-adk/pull/323","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alberto-Codes%2Fgepa-adk/issues/323","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/323/packages"},{"uuid":"4166885395","node_id":"PR_kwDOKCo6Yc7OeGB5","number":564,"state":"open","title":"python-deps(deps): bump the python-dependencies group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["python","dependencies"],"assignees":["dependabot[bot]"],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-30T03:29:56.000Z","updated_at":"2026-03-31T15:36:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"python-deps(deps): bump","group_name":"python-dependencies","update_count":17,"packages":[{"name":"griffe","old_version":"2.0.0","new_version":"2.0.2","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"mkdocs-gen-files","old_version":"0.6.0","new_version":"0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-include-markdown-plugin","old_version":"7.2.1","new_version":"7.2.2","repository_url":"https://github.com/mondeja/mkdocs-include-markdown-plugin"},{"name":"mkdocs-literate-nav","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/oprypin/mkdocs-literate-nav"},{"name":"mkdocs-section-index","old_version":"0.3.10","new_version":"0.3.11","repository_url":"https://github.com/oprypin/mkdocs-section-index"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.21","new_version":"10.21.2","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"tomli","old_version":"2.4.0","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"coverage","old_version":"7.13.4","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"ruff","old_version":"0.15.6","new_version":"0.15.8","repository_url":"https://github.com/astral-sh/ruff"},{"name":"chardet","old_version":"5.2.0","new_version":"7.4.0.post2","repository_url":"https://github.com/chardet/chardet"},{"name":"werkzeug","old_version":"3.1.6","new_version":"3.1.7","repository_url":"https://github.com/pallets/werkzeug"},{"name":"griffecli","old_version":"2.0.0","new_version":"2.0.2"},{"name":"griffelib","old_version":"2.0.0","new_version":"2.0.2"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.44.0","repository_url":"https://github.com/pydantic/pydantic-core"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 17 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [griffe](https://github.com/mkdocstrings/griffe) | `2.0.0` | `2.0.2` |\n| [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) | `0.6.0` | `0.6.1` |\n| [mkdocs-include-markdown-plugin](https://github.com/mondeja/mkdocs-include-markdown-plugin) | `7.2.1` | `7.2.2` |\n| [mkdocs-literate-nav](https://github.com/oprypin/mkdocs-literate-nav) | `0.6.2` | `0.6.3` |\n| [mkdocs-section-index](https://github.com/oprypin/mkdocs-section-index) | `0.3.10` | `0.3.11` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.21` | `10.21.2` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.4.0` | `2.4.1` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.4` | `7.13.5` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.6` | `0.15.8` |\n| [chardet](https://github.com/chardet/chardet) | `5.2.0` | `7.4.0.post2` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.6` | `3.1.7` |\n| griffecli | `2.0.0` | `2.0.2` |\n| griffelib | `2.0.0` | `2.0.2` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.41.5` | `2.44.0` |\n\n\nUpdates `griffe` from 2.0.0 to 2.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.2\"\u003e2.0.2\u003c/a\u003e - 2026-03-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.1...2.0.2\"\u003eCompare with 2.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBuild\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd py.typed marker to packages (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce46ba314810e46c5168cfab220254908640d6e3\"\u003ece46ba3\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2026-03-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting type parameters through aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/75c1236078bdb38ccaf95330d3c635f8db3806b7\"\u003e75c1236\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/449\"\u003eIssue-449\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/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.2\"\u003e2.0.2\u003c/a\u003e - 2026-03-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.1...2.0.2\"\u003eCompare with 2.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBuild\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd py.typed marker to packages (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce46ba314810e46c5168cfab220254908640d6e3\"\u003ece46ba3\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2026-03-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting type parameters through aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/75c1236078bdb38ccaf95330d3c635f8db3806b7\"\u003e75c1236\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/449\"\u003eIssue-449\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/mkdocstrings/griffe/commit/6f30ebb60f11c419c2b0c703faa09163a39552a3\"\u003e\u003ccode\u003e6f30ebb\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce46ba314810e46c5168cfab220254908640d6e3\"\u003e\u003ccode\u003ece46ba3\u003c/code\u003e\u003c/a\u003e build: Add py.typed marker to packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/006282cf920109782fec91f9b5c4437cfbd02bac\"\u003e\u003ccode\u003e006282c\u003c/code\u003e\u003c/a\u003e chore: Fix publish duty\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8df2c4061d01f8c7a3ded03d63505fef0052092a\"\u003e\u003ccode\u003e8df2c40\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1236192681a9492133efd01bcd77d018fa3d4630\"\u003e\u003ccode\u003e1236192\u003c/code\u003e\u003c/a\u003e chore: Update ty comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/75c1236078bdb38ccaf95330d3c635f8db3806b7\"\u003e\u003ccode\u003e75c1236\u003c/code\u003e\u003c/a\u003e fix: Allow setting type parameters through aliases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/862a891818d7182204e213ef216b6b5f3c6dc106\"\u003e\u003ccode\u003e862a891\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2666aaabe9b93f70c3dcde46ac284251a065a5c1\"\u003e\u003ccode\u003e2666aaa\u003c/code\u003e\u003c/a\u003e chore: Update sponsors section in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/e30c32143149ab124f3ade14523201b80a9cbfd9\"\u003e\u003ccode\u003ee30c321\u003c/code\u003e\u003c/a\u003e style: Format code for Python 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/051394aa21cd0884a7480a6892c07d62bf0ca451\"\u003e\u003ccode\u003e051394a\u003c/code\u003e\u003c/a\u003e chore: Add back title to type-check duty\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.0...2.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.6.0 to 0.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-include-markdown-plugin` from 7.2.1 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/releases\"\u003emkdocs-include-markdown-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.2.2\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix natural order by extension not correctly applied\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/98cf8e8dee370cf332ed00cd8426d2ffcfa07065\"\u003e\u003ccode\u003e98cf8e8\u003c/code\u003e\u003c/a\u003e Fix natural order by extension not correctly applied (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/292\"\u003e#292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/compare/v7.2.1...v7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-literate-nav` from 0.6.2 to 0.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/releases\"\u003emkdocs-literate-nav's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/pull/39\"\u003eoprypin/mkdocs-literate-nav#39\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ehttps://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.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/oprypin/mkdocs-literate-nav/commit/b91268c263f61e38a7e27f77ccf38ec287e0c0b5\"\u003e\u003ccode\u003eb91268c\u003c/code\u003e\u003c/a\u003e v0.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/cee9ec49a1523036081378a39bda9fa014432526\"\u003e\u003ccode\u003ecee9ec4\u003c/code\u003e\u003c/a\u003e Exclude properdocs when testing minimal dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/ea523f5864f59fb7939f84cd4400df67280ad52c\"\u003e\u003ccode\u003eea523f5\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/258b15a15a3e25cedc816d0a5a971acfdb86541e\"\u003e\u003ccode\u003e258b15a\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-section-index` from 0.3.10 to 0.3.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/releases\"\u003emkdocs-section-index's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/pull/27\"\u003eoprypin/mkdocs-section-index#27\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ehttps://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\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/oprypin/mkdocs-section-index/commit/a8235f6f8eb5927b966a3aaea8afe5fa161ecece\"\u003e\u003ccode\u003ea8235f6\u003c/code\u003e\u003c/a\u003e v0.3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/ac66dfda53834d79ce8e0af6f340dddd7cde2bf9\"\u003e\u003ccode\u003eac66dfd\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/issues/27\"\u003e#27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/32866cd83993ee3eefbac0fcc13911692796d8f6\"\u003e\u003ccode\u003e32866cd\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\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.2 to 2.20.0\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.20.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRell (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003earchetype: Fix catastrophic backtracking in GUID and ID patterns (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3064\"\u003e#3064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eASN.1: Recognize minus sign and fix range operator (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3014\"\u003e#3014\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eC++: Add C++26 keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e), add integer literal suffixes (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2966\"\u003e#2966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComponentPascal: Fix \u003ccode\u003eanalyse_text\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3028\"\u003e#3028\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3032\"\u003e#3032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCoq renamed to Rocq (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2883\"\u003e#2883\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2908\"\u003e#2908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCython: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2932\"\u003e#2932\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDebian control: Improve architecture parsing (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3052\"\u003e#3052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDevicetree: Add support for overlay/fragments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3021\"\u003e#3021\u003c/a\u003e), add bytestring support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3022\"\u003e#3022\u003c/a\u003e), fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFennel: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHaskell: Handle escape sequences in character literals (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3069\"\u003e#3069\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/1795\"\u003e#1795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJava: Add module keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLean4: Add operators \u003ccode\u003e]'\u003c/code\u003e, \u003ccode\u003e]?\u003c/code\u003e, \u003ccode\u003e]!\u003c/code\u003e  (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2946\"\u003e#2946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLESS: Support single-line comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLilyPond: Update to 2.25.29 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLLVM: Support C-style comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3023\"\u003e#3023\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2978\"\u003e#2978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLua(u): Fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMacaulay2: Update to 1.25.05 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2893\"\u003e#2893\u003c/a\u003e), 1.25.11 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2988\"\u003e#2988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMathematica: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2957\"\u003e#2957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emeson: Add additional operators (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMySQL: Update keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2970\"\u003e#2970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eorg-Mode: Support both schedule and deadline (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2899\"\u003e#2899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePHP: Add \u003ccode\u003e__PROPERTY__\u003c/code\u003e magic constant (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2924\"\u003e#2924\u003c/a\u003e), add reserved keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3002\"\u003e#3002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePostgreSQL: Add more keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2985\"\u003e#2985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eprotobuf: Fix namespace tokenization (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2929\"\u003e#2929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython: Add \u003ccode\u003et\u003c/code\u003e-string support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2973\"\u003e#2973\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3009\"\u003e#3009\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTablegen: Fix infinite loop (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2972\"\u003e#2972\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTera Term macro: Add commands introduced in v5.3 through v5.6 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTOML: Support TOML 1.1.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3026\"\u003e#3026\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTurtle: Allow empty comment lines (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2980\"\u003e#2980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eXML: Added \u003ccode\u003e.xbrl\u003c/code\u003e as file ending (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2890\"\u003e#2890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop Python 3.8, and add Python 3.14 as a supported version (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2987\"\u003e#2987\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3012\"\u003e#3012\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to \u003ccode\u003eautopygmentize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003eonedark\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2977\"\u003e#2977\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003ertt\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2895\"\u003e#2895\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCache entry points to improve performance (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2979\"\u003e#2979\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003exterm-256\u003c/code\u003e color table (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3043\"\u003e#3043\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ekwargs\u003c/code\u003e dictionary getting mutated on each call (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pygments/pygments/blob/master/CHANGES\"\u003epygments's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.20.0\u003c/h2\u003e\n\u003cp\u003e(released March 29th, 2026)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRell (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003earchetype: Fix catastrophic backtracking in GUID and ID patterns (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3064\"\u003e#3064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eASN.1: Recognize minus sign and fix range operator (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3014\"\u003e#3014\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eC++: Add C++26 keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e), add integer literal suffixes (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2966\"\u003e#2966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComponentPascal: Fix \u003ccode\u003eanalyse_text\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3028\"\u003e#3028\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3032\"\u003e#3032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCoq renamed to Rocq (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2883\"\u003e#2883\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2908\"\u003e#2908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCython: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2932\"\u003e#2932\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDebian control: Improve architecture parsing (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3052\"\u003e#3052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDevicetree: Add support for overlay/fragments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3021\"\u003e#3021\u003c/a\u003e), add bytestring support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3022\"\u003e#3022\u003c/a\u003e), fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFennel: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHaskell: Handle escape sequences in character literals (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3069\"\u003e#3069\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/1795\"\u003e#1795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJava: Add module keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLean4: Add operators \u003ccode\u003e]'\u003c/code\u003e, \u003ccode\u003e]?\u003c/code\u003e, \u003ccode\u003e]!\u003c/code\u003e  (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2946\"\u003e#2946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLESS: Support single-line comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLilyPond: Update to 2.25.29 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLLVM: Support C-style comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3023\"\u003e#3023\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2978\"\u003e#2978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLua(u): Fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMacaulay2: Update to 1.25.05 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2893\"\u003e#2893\u003c/a\u003e), 1.25.11 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2988\"\u003e#2988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMathematica: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2957\"\u003e#2957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emeson: Add additional operators (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMySQL: Update keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2970\"\u003e#2970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eorg-Mode: Support both schedule and deadline (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2899\"\u003e#2899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePHP: Add \u003ccode\u003e__PROPERTY__\u003c/code\u003e magic constant (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2924\"\u003e#2924\u003c/a\u003e), add reserved keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3002\"\u003e#3002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePostgreSQL: Add more keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2985\"\u003e#2985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eprotobuf: Fix namespace tokenization (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2929\"\u003e#2929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython: Add \u003ccode\u003et\u003c/code\u003e-string support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2973\"\u003e#2973\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3009\"\u003e#3009\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTablegen: Fix infinite loop (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2972\"\u003e#2972\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTera Term macro: Add commands introduced in v5.3 through v5.6 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTOML: Support TOML 1.1.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3026\"\u003e#3026\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTurtle: Allow empty comment lines (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2980\"\u003e#2980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eXML: Added \u003ccode\u003e.xbrl\u003c/code\u003e as file ending (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2890\"\u003e#2890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop Python 3.8, and add Python 3.14 as a supported version (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2987\"\u003e#2987\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3012\"\u003e#3012\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to \u003ccode\u003eautopygmentize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003eonedark\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2977\"\u003e#2977\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003ertt\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2895\"\u003e#2895\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCache entry points to improve performance (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2979\"\u003e#2979\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003exterm-256\u003c/code\u003e color table (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3043\"\u003e#3043\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ekwargs\u003c/code\u003e dictionary getting mutated on each call (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/708197d82827ba2d5ca78bcbb653c7102ce86dcd\"\u003e\u003ccode\u003e708197d\u003c/code\u003e\u003c/a\u003e Fix underline length.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/1d4538ae8621d766ecc91ff59caf76ab75983abc\"\u003e\u003ccode\u003e1d4538a\u003c/code\u003e\u003c/a\u003e Prepare 2.20 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/2ceaee4e634eebae2d10a47fd05406871f6bac8f\"\u003e\u003ccode\u003e2ceaee4\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/e3a3c54b58c7f80bc4db887e471d4f91c77844ed\"\u003e\u003ccode\u003ee3a3c54\u003c/code\u003e\u003c/a\u003e Fix Haskell lexer: handle escape sequences in character literals (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3069\"\u003e#3069\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/d7c3453e342dac319f58e4091f4ef183cc49d802\"\u003e\u003ccode\u003ed7c3453\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3071\"\u003e#3071\u003c/a\u003e from pygments/harden-html-formatter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/0f97e7c37d44abfa4ddfddf44a3290fdad586034\"\u003e\u003ccode\u003e0f97e7c\u003c/code\u003e\u003c/a\u003e Harden the HTML formatter against CSS.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/9f981b2ba42b88ca5bdcebf12cd01efd7cd80aec\"\u003e\u003ccode\u003e9f981b2\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/1d889151024e9a53f3702a60558b29b070306e9e\"\u003e\u003ccode\u003e1d88915\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/c3d93adb9827fc054c3c12b47bde31c781a36a93\"\u003e\u003ccode\u003ec3d93ad\u003c/code\u003e\u003c/a\u003e Fix ASN.1 lexer: recognize minus sign and fix range operator (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/4f06bcf8a5ba3f2b5bda24a26ccf041a1a65d91e\"\u003e\u003ccode\u003e4f06bcf\u003c/code\u003e\u003c/a\u003e fix bad behaving backtracking regex in CommonLispLexer\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pygments/pygments/compare/2.19.2...2.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymdown-extensions` from 10.21 to 10.21.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/releases\"\u003epymdown-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e10.21. 2\u003c/h2\u003e\n\u003ch2\u003e10.21.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Highlight: Latest Pygments versions cannot handle a \u0026quot;filename\u0026quot; for code block titles of \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.20.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Quotes: Ensure the first class for callouts (the alert type) is always rendered lowercase.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/a4fdd73554706877e339692183b9424e8f5fec24\"\u003e\u003ccode\u003ea4fdd73\u003c/code\u003e\u003c/a\u003e Skip tag 10.21.1 has we accidentally already used it\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/8afb4cde8fa5159e4318ab72e2daa55fd1107d4f\"\u003e\u003ccode\u003e8afb4cd\u003c/code\u003e\u003c/a\u003e Docs: Update JS deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/7bf5b2965a6b3dc6ee502ad3d117f6182e838e56\"\u003e\u003ccode\u003e7bf5b29\u003c/code\u003e\u003c/a\u003e Pygments needs a non-None value for code block title (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2863\"\u003e#2863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/20b11ebc86b54fbbed3d43e6f1d845ee474b2378\"\u003e\u003ccode\u003e20b11eb\u003c/code\u003e\u003c/a\u003e Fix some spelling and formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/c9edba3301e321e1e0f830a74a01ccbf10a45786\"\u003e\u003ccode\u003ec9edba3\u003c/code\u003e\u003c/a\u003e Docs: strengthen Snippets warning and add security considerations\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/compare/10.21...10.21.2\"\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.5 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tomli` from 2.4.0 to 2.4.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hukkin/tomli/blob/master/CHANGELOG.md\"\u003etomli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed\n\u003cul\u003e\n\u003cli\u003eLimit number of parts of a TOML key to address quadratic time complexity\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/c5f44690c68c5ed29534faa8f9df18882113728c\"\u003e\u003ccode\u003ec5f4469\u003c/code\u003e\u003c/a\u003e Bump version: 2.4.0 → 2.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/2bcd2627d5fcc262f734eaa730b62c0915d1e0d3\"\u003e\u003ccode\u003e2bcd262\u003c/code\u003e\u003c/a\u003e Add change log for 2.4.1 and 2.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/e1fdb94bc998377f1c2545c7cd4f70ff2a3fb4e4\"\u003e\u003ccode\u003ee1fdb94\u003c/code\u003e\u003c/a\u003e Limit number of parts of a key (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/c20c49113890c226ffb27a67befe20d14fcf0c73\"\u003e\u003ccode\u003ec20c491\u003c/code\u003e\u003c/a\u003e pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/920e20b1cf495b63f6d4a6aa3cd5e4ff25f5f5a7\"\u003e\u003ccode\u003e920e20b\u003c/code\u003e\u003c/a\u003e Update performance benchmark and results\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/064e492919b2338def788753b8c981c9131334c0\"\u003e\u003ccode\u003e064e492\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/280\"\u003e#280\u003c/a\u003e from hukkin/version-2.4.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/hukkin/tomli/compare/2.4.0...2.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.4 to 7.13.5\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.5 — 2026-03-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eissue 2138\u003c/code\u003e_ describes a memory leak that happened when repeatedly\nusing the Coverage API with in-memory data. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the markdown-formatted coverage report didn't fully escape special\ncharacters in file paths (\u003ccode\u003eissue 2141\u003c/code\u003e\u003cem\u003e). This would be very unlikely to\ncause a problem, but now it's done properly, thanks to \u003ccode\u003eEllie Ayla \u0026lt;pull 2142_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the C extension wouldn't build on VS2019, but now it does (\u003ccode\u003eissue 2145\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2138: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2138\"\u003ecoveragepy/coveragepy#2138\u003c/a\u003e\n.. _issue 2141: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2141\"\u003ecoveragepy/coveragepy#2141\u003c/a\u003e\n.. _pull 2142: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2142\"\u003ecoveragepy/coveragepy#2142\u003c/a\u003e\n.. _issue 2145: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2145\"\u003ecoveragepy/coveragepy#2145\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-4:\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/c88da144eef8cf78424331e5cbbde3e002eef43f\"\u003e\u003ccode\u003ec88da14\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e2ac3e1ef644370101ff365acad3431d16076512\"\u003e\u003ccode\u003ee2ac3e1\u003c/code\u003e\u003c/a\u003e build: sample HTML shouldn't include the status.json file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/910f8f336541c2dcb4e9ec468144c7eb4a7779ac\"\u003e\u003ccode\u003e910f8f3\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3a4819c24d3d20cb2670b99141517812ffa3fab0\"\u003e\u003ccode\u003e3a4819c\u003c/code\u003e\u003c/a\u003e style: make workflows more uniform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2a53705f5fe588158b8a8d37ff3beee86388b9e4\"\u003e\u003ccode\u003e2a53705\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 4 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e7c878d201db819416b978150944d9a842d22b18\"\u003e\u003ccode\u003ee7c878d\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ab4db406a9c35acf977cf3ddb94a78d696b77bc5\"\u003e\u003ccode\u003eab4db40\u003c/code\u003e\u003c/a\u003e build: use --generate-hashes when pinning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a438753eef870441044cef588e29ce4b9a28adf1\"\u003e\u003ccode\u003ea438753\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/7b33457d2c6367dfd5a563239998b3980444e090\"\u003e\u003ccode\u003e7b33457\u003c/code\u003e\u003c/a\u003e refactor: some leftover pyupgrade 3.10 bits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2ff968db91a7cdafe6f6569ac7659a3a93a2da07\"\u003e\u003ccode\u003e2ff968d\u003c/code\u003e\u003c/a\u003e refactor: this type wasn't used anywhere\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.4...7.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.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.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.6 to 0.15.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.8\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-26.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003eunnecessary-if\u003c/code\u003e (\u003ccode\u003eRUF050\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24114\"\u003e#24114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003euseless-finally\u003c/code\u003e (\u003ccode\u003eRUF072\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24165\"\u003e#24165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003ef-string-percent-format\u003c/code\u003e (\u003ccode\u003eRUF073\u003c/code\u003e): warn when using \u003ccode\u003e%\u003c/code\u003e operator on an f-string (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24162\"\u003e#24162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Recognize \u003ccode\u003efrozendict\u003c/code\u003e as a builtin for Python 3.15+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24100\"\u003e#24100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Use fully-qualified \u003ccode\u003eanyio.lowlevel\u003c/code\u003e import in autofix (\u003ccode\u003eASYNC115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24166\"\u003e#24166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Check tuple arguments for partial paths in \u003ccode\u003eS607\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24080\"\u003e#24080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Skip \u003ccode\u003eundefined-name\u003c/code\u003e (\u003ccode\u003eF821\u003c/code\u003e) for conditionally deleted variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24088\"\u003e#24088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eE501\u003c/code\u003e/\u003ccode\u003eW505\u003c/code\u003e/formatter: Exclude nested pragma comments from line width calculation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24071\"\u003e#24071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e%foo?\u003c/code\u003e parsing in IPython assignment expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24152\"\u003e#24152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanalyze graph\u003c/code\u003e: resolve string imports that reference attributes, not just modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24058\"\u003e#24058\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\u003ety: ignore\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24192\"\u003e#24192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Treat \u003ccode\u003esys.executable\u003c/code\u003e as trusted input in \u003ccode\u003eS603\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24106\"\u003e#24106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Recognize \u003ccode\u003eSelf\u003c/code\u003e annotation and \u003ccode\u003eself\u003c/code\u003e assignment in \u003ccode\u003eSLF001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24144\"\u003e#24144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] \u003ccode\u003eF507\u003c/code\u003e: Fix false negative for non-tuple RHS in \u003ccode\u003e%\u003c/code\u003e-formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24142\"\u003e#24142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Parenthesize generator arguments in \u003ccode\u003eFURB142\u003c/code\u003e fixer (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24200\"\u003e#24200\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up diagnostic rendering (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24146\"\u003e#24146\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when Markdown files are skipped due to preview being disabled (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24150\"\u003e#24150\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify \u003ccode\u003eextend-ignore\u003c/code\u003e and \u003ccode\u003eextend-select\u003c/code\u003e settings documentation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24064\"\u003e#24064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMention AI policy in PR template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24198\"\u003e#24198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse trusted publishing for NPM packages (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24171\"\u003e#24171\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/bitloi\"\u003e\u003ccode\u003e@​bitloi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sim-hu\"\u003e\u003ccode\u003e@​Sim-hu\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.8\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-26.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003eunnecessary-if\u003c/code\u003e (\u003ccode\u003eRUF050\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24114\"\u003e#24114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003euseless-finally\u003c/code\u003e (\u003ccode\u003eRUF072\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24165\"\u003e#24165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003ef-string-percent-format\u003c/code\u003e (\u003ccode\u003eRUF073\u003c/code\u003e): warn when using \u003ccode\u003e%\u003c/code\u003e operator on an f-string (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24162\"\u003e#24162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Recognize \u003ccode\u003efrozendict\u003c/code\u003e as a builtin for Python 3.15+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24100\"\u003e#24100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Use fully-qualified \u003ccode\u003eanyio.lowlevel\u003c/code\u003e import in autofix (\u003ccode\u003eASYNC115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24166\"\u003e#24166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Check tuple arguments for partial paths in \u003ccode\u003eS607\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24080\"\u003e#24080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Skip \u003ccode\u003eundefined-name\u003c/code\u003e (\u003ccode\u003eF821\u003c/code\u003e) for conditionally deleted variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24088\"\u003e#24088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eE501\u003c/code\u003e/\u003ccode\u003eW505\u003c/code\u003e/formatter: Exclude nested pragma comments from line width calculation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24071\"\u003e#24071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e%foo?\u003c/code\u003e parsing in IPython assignment expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24152\"\u003e#24152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanalyze graph\u003c/code\u003e: resolve string imports that reference attributes, not just modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24058\"\u003e#24058\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\u003ety: ignore\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24192\"\u003e#24192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Treat \u003ccode\u003esys.executable\u003c/code\u003e as trusted input in \u003ccode\u003eS603\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24106\"\u003e#24106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Recognize \u003ccode\u003eSelf\u003c/code\u003e annotation and \u003ccode\u003eself\u003c/code\u003e assignment in \u003ccode\u003eSLF001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24144\"\u003e#24144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] \u003ccode\u003eF507\u003c/code\u003e: Fix false negative for non-tuple RHS in \u003ccode\u003e%\u003c/code\u003e-formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24142\"\u003e#24142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Parenthesize generator arguments in \u003ccode\u003eFURB142\u003c/code\u003e fixer (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24200\"\u003e#24200\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up diagnostic rendering (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24146\"\u003e#24146\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when Markdown files are skipped due to preview being disabled (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24150\"\u003e#24150\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify \u003ccode\u003eextend-ignore\u003c/code\u003e and \u003ccode\u003eextend-select\u003c/code\u003e settings documentation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24064\"\u003e#24064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMention AI policy in PR template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24198\"\u003e#24198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse trusted publishing for NPM packages (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24171\"\u003e#24171\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/bitloi\"\u003e\u003ccode\u003e@​bitloi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sim-hu\"\u003e\u003ccode\u003e@​Sim-hu\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\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/c2a8815842f9dc5d24ec19385eae0f1a7188b0d9\"\u003e\u003ccode\u003ec2a8815\u003c/code\u003e\u003c/a\u003e Release 0.15.8 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24217\"\u003e#24217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d444d52e2b9cc8bc9a078c2bd4ff6ff993290209\"\u003e\u003ccode\u003ed444d52\u003c/code\u003e\u003c/a\u003e [ty] Infer lambda expressions with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22633\"\u003e#22633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9622285ed0081fc688149f6efca87f127d9b18dd\"\u003e\u003ccode\u003e9622285\u003c/code\u003e\u003c/a\u003e [ty] Autocomplete arguments if in arguments node (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24167\"\u003e#24167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d81266252aaf0820346d55edbed79c4f25ba13d2\"\u003e\u003ccode\u003ed812662\u003c/code\u003e\u003c/a\u003e Use the \u003ccode\u003erelease\u003c/code\u003e environment in \u003ccode\u003epublish-docs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24214\"\u003e#24214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eda2355832f7a9c58aef6febd3e061dc9c87509a\"\u003e\u003ccode\u003eeda2355\u003c/code\u003e\u003c/a\u003e [ty] Show \u003ccode\u003eFinal\u003c/code\u003e source in final assignment diagnostic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24194\"\u003e#24194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/929eb5238c82bfadad4549ff526f02efc0163dd0\"\u003e\u003ccode\u003e929eb52\u003c/code\u003e\u003c/a\u003e [ty] Enforce Final attribute assignment rules for annotated and augmented wri...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/34998be22ec3a77d398bbd55234ef8740f768329\"\u003e\u003ccode\u003e34998be\u003c/code\u003e\u003c/a\u003e [ty] Fix typo in comment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24211\"\u003e#24211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/560aca0b2828ee2ff1b4bcc5c5ef1ef4ced229d2\"\u003e\u003ccode\u003e560aca0\u003c/code\u003e\u003c/a\u003e [ty] Minor simplifications to some benchmark code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24209\"\u003e#24209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/683bae512d03d3727a7bcdbc5a0170dafa049583\"\u003e\u003ccode\u003e683bae5\u003c/code\u003e\u003c/a\u003e [ty] Track non-terminal-call constraints in global scope (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23245\"\u003e#23245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4704c2a4ff3dde2fd29324346720e9516b4fe387\"\u003e\u003ccode\u003e4704c2a\u003c/code\u003e\u003c/a\u003e [ty] Remove unnecessary intermediate collection in `StaticClassLiteral::field...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.6...0.15.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `chardet` from 5.2.0 to 7.4.0.post2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/chardet/chardet/releases\"\u003echardet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003echardet 7.4.0 brings accuracy up to 99.3% (from 98.6% in 7.3.0) and significantly faster cold start thanks to a new dense model format.\u003c/p\u003e\n\u003ch2\u003eWhat's New\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ePerformance:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNew dense zlib-compressed model format (v2) drops cold start (import + first detect) from ~75ms to ~13ms with mypyc\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eAccuracy (98.6% → 99.3%):\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEliminated train/test data overlap via content fingerprinting\u003c/li\u003e\n\u003cli\u003eAdded MADLAD-400 and Wikipedia as supplemental training sources\u003c/li\u003e\n\u003cli\u003eImproved non-ASCII bigram scoring: high-byte bigrams are now preserved during training and weighted by per-bigram IDF\u003c/li\u003e\n\u003cli\u003eEncoding-aware substitution filtering (substitutions only apply for characters the target encoding can't represent)\u003c/li\u003e\n\u003cli\u003eIncreased training samples from 15K to 25K per language/encoding pair\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded dedicated structural analyzers for CP932, CP949, and Big5-HKSCS (these were previously sharing their base encoding's byte-range analyzer, missing extended ranges)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMetrics\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003e\u003c/th\u003e\n\u003cth align=\"center\"\u003echardet 7.4.0 (mypyc)\u003c/th\u003e\n\u003cth align=\"center\"\u003echardet 6.0.0\u003c/th\u003e\n\u003cth align=\"center\"\u003echarset-normalizer 3.4.6\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eAccuracy (2,517 files)\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cstrong\u003e99.3%\u003c/strong\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e88.2%\u003c/td\u003e\n\u003ctd align=\"center\"\u003e85.4%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSpeed\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cstrong\u003e551 files/s\u003c/strong\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e12 files/s\u003c/td\u003e\n\u003ctd align=\"center\"\u003e376 files/s\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eLanguage detection\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cstrong\u003e95.7%\u003c/strong\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e40.0%\u003c/td\u003e\n\u003ctd align=\"center\"\u003e59.2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eFull changelog: \u003ca href=\"https://chardet.readthedocs.io/en/latest/changelog.html\"\u003ehttps://chardet.readthedocs.io/en/latest/changelog.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.3.0\u003c/h2\u003e\n\u003ch2\u003eLicense\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e0BSD license\u003c/strong\u003e — the project license has been changed from MIT to \u003ca href=\"https://opensource.org/license/0bsd\"\u003e0BSD\u003c/a\u003e, a maximally permissive license with no attribution requirement. All prior 7.x releases should also be considered 0BSD licensed as of this release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003emime_type\u003c/code\u003e field to detection results — identifies file types for both binary (via magic number matching) and text content. Returned in all \u003ccode\u003edetect()\u003c/code\u003e, \u003ccode\u003edetect_all()\u003c/code\u003e, and \u003ccode\u003eUniversalDetector\u003c/code\u003e results. (\u003ca href=\"https://redirect.github.com/chardet/chardet/pull/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003epipeline/magic.py\u003c/code\u003e module detects 40+ binary file formats including images, audio/video, archives, documents, executables, and fonts. ZIP-based formats (XLSX, DOCX, JAR, APK, EPUB, wheel, OpenDocument) are distinguished by entry filenames. (\u003ca href=\"https://redirect.github.com/chardet/chardet/pull/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed incorrect equivalence between UTF-16-LE and UTF-16-BE in accuracy testing — these are distinct encodings with different byte order, not interchangeable\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded 4 new modules to mypyc compilation (orchestrator, confusion, magic, ascii), bringing the total to 11 compiled modules\u003c/li\u003e\n\u003cli\u003eCapped statistical scoring at 16 KB — bigram models converge quickly, so large files no longer score the full 200 KB. Worst-case detection time dropped from 62ms to 26ms with no accuracy loss.\u003c/li\u003e\n\u003cli\u003eReplaced \u003ccode\u003edataclasses.replace()\u003c/code\u003e with direct \u003ccode\u003eDetectionResult\u003c/code\u003e construction on hot paths, eliminating ~354k function calls per full test suite run\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild\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/chardet/chardet/blob/main/docs/changelog.rst\"\u003echardet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e.. note::\u003c/p\u003e\n\u003cp\u003eEntries marked \u0026quot;via Claude\u0026quot; were developed with\n\u003ccode\u003eClaude Code \u0026lt;https://claude.ai/code\u0026gt;\u003c/code\u003e_.\nDan directed the design, reviewed all output, and takes responsibility for\nthe result. Unmarked entries by Dan were written without AI assistance.\u003c/p\u003e\n\u003ch2\u003e7.4.0 (2026-03-26)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ePerformance:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched to dense zlib-compressed model format (v2): models are now\nstored as contiguous \u003ccode\u003ememoryview\u003c/code\u003e slices of a single decompressed\nblob, eliminating per-model \u003ccode\u003estruct.unpack\u003c/code\u003e overhead. Cold start\n(import + first detect) dropped from ~75ms to ~13ms with mypyc.\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e_ via Claude,\n\u003ccode\u003e[#354](https://github.com/chardet/chardet/issues/354) \u0026lt;https://github.com/chardet/chardet/pull/354\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eAccuracy:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAccuracy improved from 98.6% to 99.3% (2499/2517 files) through\na combination of training and scoring improvements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEliminated train/test data overlap by content-fingerprinting test\nsuite articles and excluding them from training data\n(\u003ccode\u003e[#351](https://github.com/chardet/chardet/issues/351) \u0026lt;https://github.com/chardet/chardet/pull/351\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded MADLAD-400 and Wikipedia as supplemental training sources to\nfill gaps left by exclusion filtering\n(\u003ccode\u003e[#351](https://github.com/chardet/chardet/issues/351) \u0026lt;https://github.com/chardet/chardet/pull/351\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eImproved non-ASCII bigram scoring: high-byte bigrams are now\npreserved during training (instead of being crushed by global\nnormalization), and weighted by per-bigram IDF so encoding-specific\nbyte patterns contribute proportionally to how discriminative they\nare (\u003ccode\u003e[#352](https://github.com/chardet/chardet/issues/352) \u0026lt;https://github.com/chardet/chardet/pull/352\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded encoding-aware substitution filtering: character substitutions\nduring training now only apply for characters the target encoding\ncannot represent\u003c/li\u003e\n\u003cli\u003eIncreased training samples from 15K to 25K per language/encoding pair\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e_ via Claude)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug Fixes:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded dedicated structural analyzers for CP932, CP949, and\nBig5-HKSCS: these superset encodings previously shared their base\nencoding's byte-range analyzer, missing extended ranges unique to each\nsuperset\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/e37cf3c4ece6beba9b6412f3bbd3e849ed2bbffb\"\u003e\u003ccode\u003ee37cf3c\u003c/code\u003e\u003c/a\u003e fix: prevent dirty-tree version in Windows mypyc wheel builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/f9f5af268407b8e7c189fa269423de77e2795378\"\u003e\u003ccode\u003ef9f5af2\u003c/code\u003e\u003c/a\u003e Fix a couple errors in the changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/53755de0c345e2dbc7d32ac89044e32ab284b726\"\u003e\u003ccode\u003e53755de\u003c/code\u003e\u003c/a\u003e chore: add .superpowers/ to .gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/3a20df6e8873d1860be53a72453226d481c0010b\"\u003e\u003ccode\u003e3a20df6\u003c/code\u003e\u003c/a\u003e docs: update README examples with correct outputs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/17ec933c7b24e00805f2262b06aea87f9e689071\"\u003e\u003ccode\u003e17ec933\u003c/code\u003e\u003c/a\u003e docs: note train/test separation in performance.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/7296d93478c334f3406c3ecd56a8c7798659e32f\"\u003e\u003ccode\u003e7296d93\u003c/code\u003e\u003c/a\u003e docs: add footnote explaining 0 B import memory (lazy loading)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/4221536b633d7ac693b4afe5c4dbb06d7d7c8d46\"\u003e\u003ccode\u003e4221536\u003c/code\u003e\u003c/a\u003e docs: add chardet 7.0.1-7.3.0 to historical performance table\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/9dfb65b6b145fccbda2ff4f20d1a79b15b917f97\"\u003e\u003ccode\u003e9dfb65b\u003c/code\u003e\u003c/a\u003e docs: remove historical performance table spec/plan (preserved in git history)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/72413b871cf3cf2f0e3505b16356c3c8ba030027\"\u003e\u003ccode\u003e72413b8\u003c/code\u003e\u003c/a\u003e docs: add historical performance table to performance.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/cbcb80d5c3eda5bcd3c1b4e750cd7bc14cfda94b\"\u003e\u003ccode\u003ecbcb80d\u003c/code\u003e\u003c/a\u003e fix: handle None detect() results and missing venvs in benchmarks\u003c/li\u003e\n\u003cli\u003eAdditional commits v...\n\n_Description has been truncated_","html_url":"https://github.com/tektronix/tm_devices/pull/564","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tektronix%2Ftm_devices/issues/564","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/564/packages"},{"uuid":"4124319886","node_id":"PR_kwDOMFeY887M1vyH","number":163,"state":"open","title":"python-deps(deps): bump the python-dependencies group across 1 directory with 23 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["dependabot[bot]"],"locked":false,"comments_count":5,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-23T23:38:13.000Z","updated_at":"2026-03-31T00:12:11.213Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"python-deps(deps): bump","group_name":"python-dependencies","update_count":23,"packages":[{"name":"black","old_version":"26.1.0","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"codespell","old_version":"2.4.1","new_version":"2.4.2","repository_url":"https://github.com/codespell-project/codespell"},{"name":"griffe","old_version":"2.0.0","new_version":"2.0.1","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"mkdocs-gen-files","old_version":"0.6.0","new_version":"0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-literate-nav","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/oprypin/mkdocs-literate-nav"},{"name":"mkdocs-section-index","old_version":"0.3.10","new_version":"0.3.11","repository_url":"https://github.com/oprypin/mkdocs-section-index"},{"name":"mkdocstrings-python","old_version":"2.0.2","new_version":"2.0.3","repository_url":"https://github.com/mkdocstrings/python"},{"name":"coverage","old_version":"7.13.4","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-env","old_version":"1.3.2","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pytest-env"},{"name":"certifi","old_version":"2026.1.4","new_version":"2026.2.25","repository_url":"https://github.com/certifi/python-certifi"},{"name":"chardet","old_version":"5.2.0","new_version":"7.2.0","repository_url":"https://github.com/chardet/chardet"},{"name":"charset-normalizer","old_version":"3.4.4","new_version":"3.4.6","repository_url":"https://github.com/jawah/charset_normalizer"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [pylint](https://github.com/pylint-dev/pylint), [black](https://github.com/psf/black), [codespell](https://github.com/codespell-project/codespell), [griffe](https://github.com/mkdocstrings/griffe), [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files), [mkdocs-literate-nav](https://github.com/oprypin/mkdocs-literate-nav), [mkdocs-section-index](https://github.com/oprypin/mkdocs-section-index), [mkdocstrings-python](https://github.com/mkdocstrings/python), [coverage](https://github.com/coveragepy/coveragepy), [pytest-cov](https://github.com/pytest-dev/pytest-cov), [pytest-env](https://github.com/pytest-dev/pytest-env), [certifi](https://github.com/certifi/python-certifi), [chardet](https://github.com/chardet/chardet), [charset-normalizer](https://github.com/jawah/charset_normalizer), [python-dotenv](https://github.com/theskumar/python-dotenv), [pytz](https://github.com/stub42/pytz), [setuptools](https://github.com/pypa/setuptools), griffecli, griffelib, [mkdocs-get-deps](https://github.com/mkdocs/get-deps), [platformdirs](https://github.com/tox-dev/platformdirs), [pydantic-core](https://github.com/pydantic/pydantic-core) and [typeguard](https://github.com/agronholm/typeguard) to permit the latest version.\nUpdates `pylint` to 4.0.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/88e1ab7545a4af4aea15c305a154c164a95ab842\"\u003e\u003ccode\u003e88e1ab7\u003c/code\u003e\u003c/a\u003e Bump pylint to 4.0.5, update changelog (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10860\"\u003e#10860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/d96d489a1743d32b6bfa53fc0f69a4333209a146\"\u003e\u003ccode\u003ed96d489\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Relax isort version constraint to allow isort 8 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/0b08ccb014c265700f244a885bdcbdfa3a03de46\"\u003e\u003ccode\u003e0b08ccb\u003c/code\u003e\u003c/a\u003e Fix dynamic color mapping for \u0026quot;fail-on\u0026quot; messages when using multiple reporter...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/154dba43276e8232a2e1cb8f90bfcc63886f3460\"\u003e\u003ccode\u003e154dba4\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix FP for \u003ccode\u003einvalid-name\u003c/code\u003e with \u003ccode\u003etyping.Final\u003c/code\u003e on...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/7b73bfdedf275935b9c5b43a6aeda5cc648b4847\"\u003e\u003ccode\u003e7b73bfd\u003c/code\u003e\u003c/a\u003e Disable unspecified-encoding for py-version above Python 3.15 (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10800\"\u003e#10800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/4cc98be8b7786dbc6692493fe9cedb8585af5518\"\u003e\u003ccode\u003e4cc98be\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix setting options for import order checker (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/f0d30a27b510d69f846e3aaa0054cf0a1412923c\"\u003e\u003ccode\u003ef0d30a2\u003c/code\u003e\u003c/a\u003e Sync astroid version with requirements file again\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/38bdf024648724e6aea017e62d3b57cb44097ec3\"\u003e\u003ccode\u003e38bdf02\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix \u003ccode\u003elogging-unsupported-format\u003c/code\u003e when logging ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/f08c33ae3e691eed868e49c0d15270dc6e6a0d6c\"\u003e\u003ccode\u003ef08c33a\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Properly detect \u003ccode\u003eself.fail()\u003c/code\u003e as a terminating...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pylint-dev/pylint/compare/v4.0.4...v4.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 26.1.0 to 26.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop evenloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop eventloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\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/c6755bb741b6481d6b3d3bb563c83fa060db96c9\"\u003e\u003ccode\u003ec6755bb\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5046\"\u003e#5046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69973fd6950985fbeb1090d96da717dc4d8380b0\"\u003e\u003ccode\u003e69973fd\u003c/code\u003e\u003c/a\u003e Harden blackd browser-facing request handling (\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4937fe6cf241139ddbfc16b0bdbb5b422798909d\"\u003e\u003ccode\u003e4937fe6\u003c/code\u003e\u003c/a\u003e Fix some shenanigans with the cache file and IPython (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2e641d174469c505d5ae905e75d4c769597e681f\"\u003e\u003ccode\u003e2e641d1\u003c/code\u003e\u003c/a\u003e docs: remove outdated Black Playground references (\u003ca href=\"https://redirect.github.com/psf/black/issues/5044\"\u003e#5044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c014b22a2d5e0632587b47b81151658bddfa0b88\"\u003e\u003ccode\u003ec014b22\u003c/code\u003e\u003c/a\u003e Remove unused internal code (\u003ca href=\"https://redirect.github.com/psf/black/issues/5041\"\u003e#5041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0dae20b2d009f2f03de8696d06b0c947d3abafc9\"\u003e\u003ccode\u003e0dae20b\u003c/code\u003e\u003c/a\u003e Add new changelog (\u003ca href=\"https://redirect.github.com/psf/black/issues/5036\"\u003e#5036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c5c1cbddd92cecb554ac2a77a24139dd76831030\"\u003e\u003ccode\u003ec5c1cbd\u003c/code\u003e\u003c/a\u003e Minor release patches (\u003ca href=\"https://redirect.github.com/psf/black/issues/5035\"\u003e#5035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7e5a828c37d71b6a6666e28eed444816def6a8f4\"\u003e\u003ccode\u003e7e5a828\u003c/code\u003e\u003c/a\u003e docs: clarify relationship between Black style and PEP 8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5025\"\u003e#5025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69705deb8776e7c5e585668da106d1abe2cb8d77\"\u003e\u003ccode\u003e69705de\u003c/code\u003e\u003c/a\u003e docs: add clearer pyproject configuration guidance (\u003ca href=\"https://redirect.github.com/psf/black/issues/5026\"\u003e#5026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/35ea67920b7f6ac8e09be1c47278752b1e827f76\"\u003e\u003ccode\u003e35ea679\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5032\"\u003e#5032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/26.1.0...26.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `codespell` from 2.4.1 to 2.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codespell-project/codespell/releases\"\u003ecodespell's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with chardet 7+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix and clarify cases in ignore patterns by \u003ca href=\"https://github.com/DanielYang59\"\u003e\u003ccode\u003e@​DanielYang59\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3583\"\u003ecodespell-project/codespell#3583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecodespell-private.yml: Do not codespell digital signature files by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3623\"\u003ecodespell-project/codespell#3623\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/codespell-project/codespell/pull/3634\"\u003ecodespell-project/codespell#3634\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enumbes-\u0026gt;numbers and numbesr-\u0026gt;numbers by \u003ca href=\"https://github.com/skshetry\"\u003e\u003ccode\u003e@​skshetry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3635\"\u003ecodespell-project/codespell#3635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling corrections for disclose and variables. by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3622\"\u003ecodespell-project/codespell#3622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling correction for Vulnererability and variants. by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3625\"\u003ecodespell-project/codespell#3625\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove lets-\u0026gt;let's by \u003ca href=\"https://github.com/Piedone\"\u003e\u003ccode\u003e@​Piedone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3633\"\u003ecodespell-project/codespell#3633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd corrections for \u0026quot;dictate\u0026quot; by \u003ca href=\"https://github.com/jdufresne\"\u003e\u003ccode\u003e@​jdufresne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3636\"\u003ecodespell-project/codespell#3636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd specicification (and pl) typo by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3639\"\u003ecodespell-project/codespell#3639\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;blueish\u0026quot; correction by \u003ca href=\"https://github.com/hadess\"\u003e\u003ccode\u003e@​hadess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3510\"\u003ecodespell-project/codespell#3510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u0026quot;lighting\u0026quot; as an option to fix \u0026quot;lighning\u0026quot; by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3648\"\u003ecodespell-project/codespell#3648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert adding \u003ccode\u003elien\u003c/code\u003e to the rare dictionary  by \u003ca href=\"https://github.com/nikolaik\"\u003e\u003ccode\u003e@​nikolaik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3631\"\u003ecodespell-project/codespell#3631\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u0026quot;ane\u0026quot; could have been \u0026quot;one\u0026quot; by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3645\"\u003ecodespell-project/codespell#3645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling correction for \u0026quot;priort\u0026quot; by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3647\"\u003ecodespell-project/codespell#3647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;fix\u0026quot; of \u0026quot;deques\u0026quot; - it is quite legit by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3649\"\u003ecodespell-project/codespell#3649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral new suggestions by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3621\"\u003ecodespell-project/codespell#3621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd proposal constraints to containts by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3652\"\u003ecodespell-project/codespell#3652\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditions dleay,infp,practive,utiliy by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3643\"\u003ecodespell-project/codespell#3643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd calncelled and its variations by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3650\"\u003ecodespell-project/codespell#3650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse raw strings for regex by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3654\"\u003ecodespell-project/codespell#3654\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow multiple spaces before codespell:ignore by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3653\"\u003ecodespell-project/codespell#3653\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded correction from \u003ccode\u003etimeour\u003c/code\u003e to \u003ccode\u003etimeout\u003c/code\u003e by \u003ca href=\"https://github.com/jamesbraza\"\u003e\u003ccode\u003e@​jamesbraza\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3656\"\u003ecodespell-project/codespell#3656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd typos found in various software projects by \u003ca href=\"https://github.com/luzpaz\"\u003e\u003ccode\u003e@​luzpaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3640\"\u003ecodespell-project/codespell#3640\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/codespell-project/codespell/pull/3659\"\u003ecodespell-project/codespell#3659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd codespell suggestions for enabke and friends by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3657\"\u003ecodespell-project/codespell#3657\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEND: add \u0026quot;queues\u0026quot; (plural from queue) as possible fix for ques by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3591\"\u003ecodespell-project/codespell#3591\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eagreegate, lesda, realod, colouer by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3665\"\u003ecodespell-project/codespell#3665\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit version in documentation by \u003ca href=\"https://github.com/prchoward\"\u003e\u003ccode\u003e@​prchoward\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3666\"\u003ecodespell-project/codespell#3666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMAINT: Rename CI file and run name by \u003ca href=\"https://github.com/larsoner\"\u003e\u003ccode\u003e@​larsoner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3667\"\u003ecodespell-project/codespell#3667\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epreoccuption-\u0026gt;preoccupation; occuption-\u0026gt;occupation by \u003ca href=\"https://github.com/TheGiraffe3\"\u003e\u003ccode\u003e@​TheGiraffe3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3668\"\u003ecodespell-project/codespell#3668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSuggestions for: checkto, diminsion, waitfor by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3670\"\u003ecodespell-project/codespell#3670\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTypos found in sigstore-python by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3664\"\u003ecodespell-project/codespell#3664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eusgin-\u0026gt;using by \u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3672\"\u003ecodespell-project/codespell#3672\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd typos found in various software projects by \u003ca href=\"https://github.com/luzpaz\"\u003e\u003ccode\u003e@​luzpaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3669\"\u003ecodespell-project/codespell#3669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd coered -\u0026gt; coerced by \u003ca href=\"https://github.com/effigies\"\u003e\u003ccode\u003e@​effigies\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3680\"\u003ecodespell-project/codespell#3680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebackwward(s)-\u0026gt;backward(s), onwward(s)-\u0026gt;onward(s) by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3682\"\u003ecodespell-project/codespell#3682\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/codespell-project/codespell/pull/3685\"\u003ecodespell-project/codespell#3685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etelemetery-\u0026gt;telemetry by \u003ca href=\"https://github.com/august-soderberg\"\u003e\u003ccode\u003e@​august-soderberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3686\"\u003ecodespell-project/codespell#3686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd hexedacimal and similar typos by \u003ca href=\"https://github.com/Akuli\"\u003e\u003ccode\u003e@​Akuli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3692\"\u003ecodespell-project/codespell#3692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd rounted-\u0026gt;routed, rounded and friends by \u003ca href=\"https://github.com/peternewman\"\u003e\u003ccode\u003e@​peternewman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3693\"\u003ecodespell-project/codespell#3693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd symmectric and similar typos by \u003ca href=\"https://github.com/Akuli\"\u003e\u003ccode\u003e@​Akuli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3694\"\u003ecodespell-project/codespell#3694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI on Windows: pip upgrade pip by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3698\"\u003ecodespell-project/codespell#3698\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/codespell-project/codespell/commit/2ccb47ff45ad361a21071a7eedda4c37e6ae8c5a\"\u003e\u003ccode\u003e2ccb47f\u003c/code\u003e\u003c/a\u003e Compat with chardet 7 (\u003ca href=\"https://redirect.github.com/codespell-project/codespell/issues/3886\"\u003e#3886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/4ec53bf6a3e510c64900d5ee838abd99d49b2910\"\u003e\u003ccode\u003e4ec53bf\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/2a4acba3f282f1b5ccb7ad8b57bc991810663a44\"\u003e\u003ccode\u003e2a4acba\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/be17cacc96a5ee3f014e048f5962cfdb7145e096\"\u003e\u003ccode\u003ebe17cac\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/04a071280d56148cab14249ccc8d4181c0066b3c\"\u003e\u003ccode\u003e04a0712\u003c/code\u003e\u003c/a\u003e Bump ruff (\u003ca href=\"https://redirect.github.com/codespell-project/codespell/issues/3879\"\u003e#3879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/583d8796d92eb58e15072db03e5b756be45f638a\"\u003e\u003ccode\u003e583d879\u003c/code\u003e\u003c/a\u003e avoide-\u0026gt;avoid, avoided, avoids,\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/1f59f34d7c6d1642fdb325d9dfa49cf9eb5f692a\"\u003e\u003ccode\u003e1f59f34\u003c/code\u003e\u003c/a\u003e Add correction for 'foudation' to 'foundation'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/e047fdafb8620b08a86349014487886bcd9c2205\"\u003e\u003ccode\u003ee047fda\u003c/code\u003e\u003c/a\u003e Add spelling correction for gather and variants.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/b5cd66de14b8f65b0f45fabbe1c89bd69ea60939\"\u003e\u003ccode\u003eb5cd66d\u003c/code\u003e\u003c/a\u003e respondant-\u0026gt;respondent\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/92125a3814fa6e86cd2055385916ce5186d3e5df\"\u003e\u003ccode\u003e92125a3\u003c/code\u003e\u003c/a\u003e Add detection of ivoice and variants.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/codespell-project/codespell/compare/v2.4.1...v2.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 2.0.0 to 2.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2026-03-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting type parameters through aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/75c1236078bdb38ccaf95330d3c635f8db3806b7\"\u003e75c1236\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/449\"\u003eIssue-449\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/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2026-03-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting type parameters through aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/75c1236078bdb38ccaf95330d3c635f8db3806b7\"\u003e75c1236\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/449\"\u003eIssue-449\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/mkdocstrings/griffe/commit/8df2c4061d01f8c7a3ded03d63505fef0052092a\"\u003e\u003ccode\u003e8df2c40\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1236192681a9492133efd01bcd77d018fa3d4630\"\u003e\u003ccode\u003e1236192\u003c/code\u003e\u003c/a\u003e chore: Update ty comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/75c1236078bdb38ccaf95330d3c635f8db3806b7\"\u003e\u003ccode\u003e75c1236\u003c/code\u003e\u003c/a\u003e fix: Allow setting type parameters through aliases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/862a891818d7182204e213ef216b6b5f3c6dc106\"\u003e\u003ccode\u003e862a891\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2666aaabe9b93f70c3dcde46ac284251a065a5c1\"\u003e\u003ccode\u003e2666aaa\u003c/code\u003e\u003c/a\u003e chore: Update sponsors section in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/e30c32143149ab124f3ade14523201b80a9cbfd9\"\u003e\u003ccode\u003ee30c321\u003c/code\u003e\u003c/a\u003e style: Format code for Python 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/051394aa21cd0884a7480a6892c07d62bf0ca451\"\u003e\u003ccode\u003e051394a\u003c/code\u003e\u003c/a\u003e chore: Add back title to type-check duty\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5f662d4658a63ebf8ab25fe124747b4725f34617\"\u003e\u003ccode\u003e5f662d4\u003c/code\u003e\u003c/a\u003e ci: Update Ruff's config (Python target, output format)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/19775450e72c2c6291e0e88ebbd7c0de1d3c99d6\"\u003e\u003ccode\u003e1977545\u003c/code\u003e\u003c/a\u003e ci: Type-check with ty\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8efecdc98a92b3f4d30d8af0fd93ce4acf90d76d\"\u003e\u003ccode\u003e8efecdc\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.0...2.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.6.0 to 0.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-literate-nav` from 0.6.2 to 0.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/releases\"\u003emkdocs-literate-nav's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/pull/39\"\u003eoprypin/mkdocs-literate-nav#39\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ehttps://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.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/oprypin/mkdocs-literate-nav/commit/b91268c263f61e38a7e27f77ccf38ec287e0c0b5\"\u003e\u003ccode\u003eb91268c\u003c/code\u003e\u003c/a\u003e v0.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/cee9ec49a1523036081378a39bda9fa014432526\"\u003e\u003ccode\u003ecee9ec4\u003c/code\u003e\u003c/a\u003e Exclude properdocs when testing minimal dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/ea523f5864f59fb7939f84cd4400df67280ad52c\"\u003e\u003ccode\u003eea523f5\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/258b15a15a3e25cedc816d0a5a971acfdb86541e\"\u003e\u003ccode\u003e258b15a\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-section-index` from 0.3.10 to 0.3.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/releases\"\u003emkdocs-section-index's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/pull/27\"\u003eoprypin/mkdocs-section-index#27\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ehttps://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\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/oprypin/mkdocs-section-index/commit/a8235f6f8eb5927b966a3aaea8afe5fa161ecece\"\u003e\u003ccode\u003ea8235f6\u003c/code\u003e\u003c/a\u003e v0.3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/ac66dfda53834d79ce8e0af6f340dddd7cde2bf9\"\u003e\u003ccode\u003eac66dfd\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/issues/27\"\u003e#27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/32866cd83993ee3eefbac0fcc13911692796d8f6\"\u003e\u003ccode\u003e32866cd\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocstrings-python` from 2.0.2 to 2.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/python/releases\"\u003emkdocstrings-python's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.3\"\u003e2.0.3\u003c/a\u003e - 2026-02-20\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/2.0.2...2.0.3\"\u003eCompare with 2.0.2\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBuild\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDepend on griffelib instead of griffe (\u003ca href=\"https://github.com/mkdocstrings/python/commit/770a5f69d801f24f0b36d1e671a540196e06f710\"\u003e770a5f6\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/python/blob/main/CHANGELOG.md\"\u003emkdocstrings-python's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.3\"\u003e2.0.3\u003c/a\u003e - 2026-02-20\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/2.0.2...2.0.3\"\u003eCompare with 2.0.2\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBuild\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDepend on griffelib instead of griffe (\u003ca href=\"https://github.com/mkdocstrings/python/commit/770a5f69d801f24f0b36d1e671a540196e06f710\"\u003e770a5f6\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/a0b99c5ed6ac44b627e2e57375e474e0939ea02e\"\u003e\u003ccode\u003ea0b99c5\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/770a5f69d801f24f0b36d1e671a540196e06f710\"\u003e\u003ccode\u003e770a5f6\u003c/code\u003e\u003c/a\u003e build: Depend on griffelib instead of griffe\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/bf8caaf76efcfe3572b40f4129117ed32bdc2ee7\"\u003e\u003ccode\u003ebf8caaf\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:mkdocstrings/python\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/95f58aa56a78df160fc66892815cb4c49d291044\"\u003e\u003ccode\u003e95f58aa\u003c/code\u003e\u003c/a\u003e ci: Minor lint fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/186d6cfac78dbc96bcb753473ceb68db5fa46f73\"\u003e\u003ccode\u003e186d6cf\u003c/code\u003e\u003c/a\u003e chore: Update sponsors section in README\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/python/compare/2.0.2...2.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.4 to 7.13.5\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.5 — 2026-03-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eissue 2138\u003c/code\u003e_ describes a memory leak that happened when repeatedly\nusing the Coverage API with in-memory data. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the markdown-formatted coverage report didn't fully escape special\ncharacters in file paths (\u003ccode\u003eissue 2141\u003c/code\u003e\u003cem\u003e). This would be very unlikely to\ncause a problem, but now it's done properly, thanks to \u003ccode\u003eEllie Ayla \u0026lt;pull 2142_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the C extension wouldn't build on VS2019, but now it does (\u003ccode\u003eissue 2145\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2138: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2138\"\u003ecoveragepy/coveragepy#2138\u003c/a\u003e\n.. _issue 2141: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2141\"\u003ecoveragepy/coveragepy#2141\u003c/a\u003e\n.. _pull 2142: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2142\"\u003ecoveragepy/coveragepy#2142\u003c/a\u003e\n.. _issue 2145: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2145\"\u003ecoveragepy/coveragepy#2145\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-4:\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/c88da144eef8cf78424331e5cbbde3e002eef43f\"\u003e\u003ccode\u003ec88da14\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e2ac3e1ef644370101ff365acad3431d16076512\"\u003e\u003ccode\u003ee2ac3e1\u003c/code\u003e\u003c/a\u003e build: sample HTML shouldn't include the status.json file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/910f8f336541c2dcb4e9ec468144c7eb4a7779ac\"\u003e\u003ccode\u003e910f8f3\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3a4819c24d3d20cb2670b99141517812ffa3fab0\"\u003e\u003ccode\u003e3a4819c\u003c/code\u003e\u003c/a\u003e style: make workflows more uniform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2a53705f5fe588158b8a8d37ff3beee86388b9e4\"\u003e\u003ccode\u003e2a53705\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 4 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e7c878d201db819416b978150944d9a842d22b18\"\u003e\u003ccode\u003ee7c878d\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ab4db406a9c35acf977cf3ddb94a78d696b77bc5\"\u003e\u003ccode\u003eab4db40\u003c/code\u003e\u003c/a\u003e build: use --generate-hashes when pinning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a438753eef870441044cef588e29ce4b9a28adf1\"\u003e\u003ccode\u003ea438753\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/7b33457d2c6367dfd5a563239998b3980444e090\"\u003e\u003ccode\u003e7b33457\u003c/code\u003e\u003c/a\u003e refactor: some leftover pyupgrade 3.10 bits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2ff968db91a7cdafe6f6569ac7659a3a93a2da07\"\u003e\u003ccode\u003e2ff968d\u003c/code\u003e\u003c/a\u003e refactor: this type wasn't used anywhere\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.4...7.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.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.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-env` from 1.3.2 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-env/releases\"\u003epytest-env's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(env): preserve existing env values by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/pull/213\"\u003epytest-dev/pytest-env#213\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/pytest-env/compare/1.5.1...1.6.0\"\u003ehttps://github.com/pytest-dev/pytest-env/compare/1.5.1...1.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.5.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd permissions to workflows by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/pull/203\"\u003epytest-dev/pytest-env#203\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd SECURITY.md to .github/ by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/pull/206\"\u003epytest-dev/pytest-env#206\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing .github config files by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/pull/207\"\u003epytest-dev/pytest-env#207\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize .github files to .yaml suffix by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/pull/208\"\u003epytest-dev/pytest-env#208\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix verbose source attribution when falling back to INI env by \u003ca href=\"https://github.com/shuofengzhang\"\u003e\u003ccode\u003e@​shuofengzhang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/pull/211\"\u003epytest-dev/pytest-env#211\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/shuofengzhang\"\u003e\u003ccode\u003e@​shuofengzhang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/pull/211\"\u003epytest-dev/pytest-env#211\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/pytest-env/compare/1.5.0...1.5.1\"\u003ehttps://github.com/pytest-dev/pytest-env/compare/1.5.0...1.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.5.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(plugin): add --pytest-env-verbose for debugging env assignments by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/pull/199\"\u003epytest-dev/pytest-env#199\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/pytest-env/compare/1.4.0...1.5.0\"\u003ehttps://github.com/pytest-dev/pytest-env/compare/1.4.0...1.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(cli): add --envfile option for runtime environment switching by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/pull/197\"\u003epytest-dev/pytest-env#197\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/pytest-env/compare/1.3.2...1.4.0\"\u003ehttps://github.com/pytest-dev/pytest-env/compare/1.3.2...1.4.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/pytest-dev/pytest-env/commit/8bd22d1b9d9d7594c408040610868743ca3d5a9b\"\u003e\u003ccode\u003e8bd22d1\u003c/code\u003e\u003c/a\u003e ✨ feat(env): preserve existing env values (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/issues/213\"\u003e#213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-env/commit/81f9e0e19d17169f03d9c078818421f34c45a67d\"\u003e\u003ccode\u003e81f9e0e\u003c/code\u003e\u003c/a\u003e Fix verbose source attribution when falling back to INI env (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/issues/211\"\u003e#211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-env/commit/81dc95d54f09ebb9b6e5f704b86a4bb60552b08b\"\u003e\u003ccode\u003e81dc95d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-env/commit/439cc76fecbfbb95b6d3123a32bbc8030a9f95c0\"\u003e\u003ccode\u003e439cc76\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/issues/209\"\u003e#209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-env/commit/b1b498e28cb76863a6e88c713a9bb09cdfbb0857\"\u003e\u003ccode\u003eb1b498e\u003c/code\u003e\u003c/a\u003e Standardize .github files to .yaml suffix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-env/commit/066dadc7b4f8a40818e2c19c6bbd7281671eb081\"\u003e\u003ccode\u003e066dadc\u003c/code\u003e\u003c/a\u003e Add missing .github config files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-env/commit/7d01327e395f0080dd6256c0cf30f2a8693c3c32\"\u003e\u003ccode\u003e7d01327\u003c/code\u003e\u003c/a\u003e Add SECURITY.md to .github/\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-env/commit/04259c91dfbd4b77a053bcad5fd63d5d7d78ae5d\"\u003e\u003ccode\u003e04259c9\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/issues/205\"\u003e#205\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-env/commit/4fdb9d8d6defe6fc40069455ec672fa3f1bef51f\"\u003e\u003ccode\u003e4fdb9d8\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/issues/204\"\u003e#204\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-env/commit/672e44f059e03870caf87054aa7426411a8a9658\"\u003e\u003ccode\u003e672e44f\u003c/code\u003e\u003c/a\u003e Add permissions to workflows (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/issues/203\"\u003e#203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-env/compare/1.3.2...1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2026.1.4 to 2026.2.25\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/8571a4ba5205675107f9026d0008ad2d7a2778bf\"\u003e\u003ccode\u003e8571a4b\u003c/code\u003e\u003c/a\u003e 2026.02.25 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6f7de00579d292af565bbb8a947643219794eb6d\"\u003e\u003ccode\u003e6f7de00\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 8.0.0 to 8.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a1de59b15105cad768afed4f066b36171134f04a\"\u003e\u003ccode\u003ea1de59b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.1 to 6.0.2 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/7f5ade5d8da615fd366e8de6a668271251c45d34\"\u003e\u003ccode\u003e7f5ade5\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.1.0 to 6.2.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2026.01.04...2026.02.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `chardet` from 5.2.0 to 7.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/chardet/chardet/releases\"\u003echardet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003echardet 7.2.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003einclude_encodings\u003c/code\u003e and \u003ccode\u003eexclude_encodings\u003c/code\u003e parameters to \u003ccode\u003edetect()\u003c/code\u003e, \u003ccode\u003edetect_all()\u003c/code\u003e, and \u003ccode\u003eUniversalDetector\u003c/code\u003e — restrict or exclude specific encodings from the candidate set, with corresponding \u003ccode\u003e-i\u003c/code\u003e/\u003ccode\u003e--include-encodings\u003c/code\u003e and \u003ccode\u003e-x\u003c/code\u003e/\u003ccode\u003e--exclude-encodings\u003c/code\u003e CLI flags (\u003ca href=\"https://redirect.github.com/chardet/chardet/pull/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eno_match_encoding\u003c/code\u003e (default \u003ccode\u003e\u0026quot;cp1252\u0026quot;\u003c/code\u003e) and \u003ccode\u003eempty_input_encoding\u003c/code\u003e (default \u003ccode\u003e\u0026quot;utf-8\u0026quot;\u003c/code\u003e) parameters — control which encoding is returned when no candidate survives the pipeline or the input is empty, with corresponding CLI flags (\u003ca href=\"https://redirect.github.com/chardet/chardet/pull/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e-l\u003c/code\u003e/\u003ccode\u003e--language\u003c/code\u003e flag to \u003ccode\u003echardetect\u003c/code\u003e CLI — shows the detected language (ISO 639-1 code and English name) alongside the encoding (\u003ca href=\"https://redirect.github.com/chardet/chardet/pull/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed null-separated ASCII data being misdetected as UTF-16-BE (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/346\"\u003e#346\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/chardet/chardet/pull/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://chardet.readthedocs.io/en/latest/changelog.html\"\u003ehttps://chardet.readthedocs.io/en/latest/changelog.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003echardet 7.1.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded PEP 263 encoding declaration detection — \u003ccode\u003e# -*- coding: ... -*-\u003c/code\u003e and \u003ccode\u003e# coding=...\u003c/code\u003e declarations on lines 1–2 of Python source files are now recognized with confidence 0.95 (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/249\"\u003e#249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003echardet.universaldetector\u003c/code\u003e backward-compatibility stub so that \u003ccode\u003efrom chardet.universaldetector import UniversalDetector\u003c/code\u003e works with a deprecation warning (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed false UTF-7 detection of ASCII text containing \u003ccode\u003e++\u003c/code\u003e or \u003ccode\u003e+word\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/332\"\u003e#332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed 0.5s startup cost on first \u003ccode\u003edetect()\u003c/code\u003e call — model norms are now computed during loading instead of lazily iterating 21M entries (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed undocumented encoding name changes between chardet 5.x and 7.0 — \u003ccode\u003edetect()\u003c/code\u003e now returns chardet 5.x-compatible names by default (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved ISO-2022-JP family detection — recognizes ESC sequences for ISO-2022-JP-2004 (JIS X 0213) and ISO-2022-JP-EXT (JIS X 0201 Kana)\u003c/li\u003e\n\u003cli\u003eFixed silent truncation of corrupt model data (\u003ccode\u003eiter_unpack\u003c/code\u003e yielded fewer tuples instead of raising)\u003c/li\u003e\n\u003cli\u003eFixed incorrect date in LICENSE\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e5.5x faster first-detect time (~0.42s → ~0.075s) by computing model norms as a side-product of \u003ccode\u003eload_models()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e~40% faster model parsing via \u003ccode\u003estruct.iter_unpack\u003c/code\u003e for bulk entry extraction (eliminates ~305K individual \u003ccode\u003eunpack\u003c/code\u003e calls)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew API parameters\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003ecompat_names\u003c/code\u003e parameter (default \u003ccode\u003eTrue\u003c/code\u003e) to \u003ccode\u003edetect()\u003c/code\u003e, \u003ccode\u003edetect_all()\u003c/code\u003e, and \u003ccode\u003eUniversalDetector\u003c/code\u003e — set to \u003ccode\u003eFalse\u003c/code\u003e to get raw Python codec names instead of chardet 5.x/6.x compatible display names\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eprefer_superset\u003c/code\u003e parameter (default \u003ccode\u003eFalse\u003c/code\u003e) — remaps legacy ISO/subset encodings to their modern Windows/CP superset equivalents (e.g., ASCII → Windows-1252, ISO-8859-1 → Windows-1252). \u003cstrong\u003eThis will default to \u003ccode\u003eTrue\u003c/code\u003e in the next major version (8.0).\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated \u003ccode\u003eshould_rename_legacy\u003c/code\u003e in favor of \u003ccode\u003eprefer_superset\u003c/code\u003e — a deprecation warning is emitted when used\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched internal canonical encoding names to Python codec names (e.g., \u003ccode\u003e\u0026quot;utf-8\u0026quot;\u003c/code\u003e instead of \u003ccode\u003e\u0026quot;UTF-8\u0026quot;\u003c/code\u003e), with \u003ccode\u003ecompat_names\u003c/code\u003e controlling the public output format\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003elookup_encoding()\u003c/code\u003e to \u003ccode\u003eregistry\u003c/code\u003e for case-insensitive resolution of arbitrary encoding name input to canonical names\u003c/li\u003e\n\u003cli\u003eAchieved 100% line coverage across all source modules (+31 tests)\u003c/li\u003e\n\u003cli\u003eUpdated benchmark numbers: 98.2% encoding accuracy, 95.2% language accuracy on 2,510 test files\u003c/li\u003e\n\u003cli\u003ePinned test-data cloning to chardet release version tags for reproducible builds\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://chardet.readthedocs.io/en/latest/changelog.html\"\u003ehttps://chardet.readthedocs.io/en/latest/changelog.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.0.1\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/chardet/chardet/blob/main/docs/changelog.rst\"\u003echardet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.0 (2026-03-17)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFeatures:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003einclude_encodings\u003c/code\u003e and \u003ccode\u003eexclude_encodings\u003c/code\u003e parameters to\n:func:\u003ccode\u003e~chardet.detect\u003c/code\u003e, :func:\u003ccode\u003e~chardet.detect_all\u003c/code\u003e, and\n:class:\u003ccode\u003e~chardet.UniversalDetector\u003c/code\u003e — restrict or exclude specific\nencodings from the candidate set, with corresponding\n\u003ccode\u003e-i\u003c/code\u003e/\u003ccode\u003e--include-encodings\u003c/code\u003e and \u003ccode\u003e-x\u003c/code\u003e/\u003ccode\u003e--exclude-encodings\u003c/code\u003e\nCLI flags\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e[#343](https://github.com/chardet/chardet/issues/343) \u0026lt;https://github.com/chardet/chardet/pull/343\u0026gt;\u003c/code\u003e\u003c/em\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eno_match_encoding\u003c/code\u003e (default \u003ccode\u003e\u0026quot;cp1252\u0026quot;\u003c/code\u003e) and\n\u003ccode\u003eempty_input_encoding\u003c/code\u003e (default \u003ccode\u003e\u0026quot;utf-8\u0026quot;\u003c/code\u003e) parameters — control\nwhich encoding is returned when no candidate survives the pipeline or\nthe input is empty, with corresponding CLI flags\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e[#343](https://github.com/chardet/chardet/issues/343) \u0026lt;https://github.com/chardet/chardet/pull/343\u0026gt;\u003c/code\u003e\u003c/em\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e-l\u003c/code\u003e/\u003ccode\u003e--language\u003c/code\u003e flag to \u003ccode\u003echardetect\u003c/code\u003e CLI — shows the\ndetected language (ISO 639-1 code and English name) alongside the encoding\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e[#342](https://github.com/chardet/chardet/issues/342) \u0026lt;https://github.com/chardet/chardet/pull/342\u0026gt;\u003c/code\u003e\u003c/em\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.1.0 (2026-03-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFeatures:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded PEP 263 encoding declaration detection — \u003ccode\u003e# -*- coding: ... -*-\u003c/code\u003e\nand \u003ccode\u003e# coding=...\u003c/code\u003e declarations on lines 1–2 of Python source files are\nnow recognized with confidence 0.95\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e[#249](https://github.com/chardet/chardet/issues/249) \u0026lt;https://github.com/chardet/chardet/issues/249\u0026gt;\u003c/code\u003e\u003c/em\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003echardet.universaldetector\u003c/code\u003e backward-compatibility stub so that\n\u003ccode\u003efrom chardet.universaldetector import UniversalDetector\u003c/code\u003e works with a\ndeprecation warning\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e[#341](https://github.com/chardet/chardet/issues/341) \u0026lt;https://github.com/chardet/chardet/issues/341\u0026gt;\u003c/code\u003e\u003c/em\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFixes:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed false UTF-7 detection of ASCII text containing \u003ccode\u003e++\u003c/code\u003e or \u003ccode\u003e+word\u003c/code\u003e\npatterns\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e[#332](https://github.com/chardet/chardet/issues/332) \u0026lt;https://github.com/chardet/chardet/issues/332\u0026gt;\u003c/code\u003e\u003c/em\u003e,\n\u003ccode\u003e[#335](https://github.com/chardet/chardet/issues/335) \u0026lt;https://github.com/chardet/chardet/pull/335\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFixed 0.5s startup cost on first \u003ccode\u003edetect()\u003c/code\u003e call — model norms are now\ncomputed during loading instead of lazily iterating 21M entries\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\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/chardet/chardet/commit/884996a2eaff06d41e829c8893525f26a8780791\"\u003e\u003ccode\u003e884996a\u003c/code\u003e\u003c/a\u003e docs: set 7.2.0 release date to 2026-03-17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/64361f8f40f45b6d8ae3365483e906c5a33c64a7\"\u003e\u003ccode\u003e64361f8\u003c/code\u003e\u003c/a\u003e docs: add CLI examples for --no-match-encoding and --empty-input-encoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/89a9a4cb0cd031c63889671f708799938afe6845\"\u003e\u003ccode\u003e89a9a4c\u003c/code\u003e\u003c/a\u003e Fix null-separated ASCII misdetected as UTF-16-BE (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/a98f09761394280f649521092df9e001dafb3506\"\u003e\u003ccode\u003ea98f097\u003c/code\u003e\u003c/a\u003e docs: add example output to all CLI commands for consistency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/d2f4ac2c8bf7f27d1ee6675a4ce03a157ecc8fce\"\u003e\u003ccode\u003ed2f4ac2\u003c/code\u003e\u003c/a\u003e docs: document 7.2.0 features (encoding filters, --language CLI flag)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/575fa96712a3c3e465a16e814e66a8137cc17531\"\u003e\u003ccode\u003e575fa96\u003c/code\u003e\u003c/a\u003e test: add include_encodings accuracy preservation tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/66e21fcfd03e584562bbc50c760141ea4ef0a351\"\u003e\u003ccode\u003e66e21fc\u003c/code\u003e\u003c/a\u003e fix: strengthen weak tests and remove duplicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/e1428c3158ce7b9f74b8f1a41f9e82a3fa52b311\"\u003e\u003ccode\u003ee1428c3\u003c/code\u003e\u003c/a\u003e Add include/exclude encoding filters (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/63e90b5fb6ad0b32ff76351f0d4bee25d64f53a4\"\u003e\u003ccode\u003e63e90b5\u003c/code\u003e\u003c/a\u003e fix: pass --no-binary chardet for pinned versions with --pure\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/2fe89933d479fc9153520b12390858ceceaa43c6\"\u003e\u003ccode\u003e2fe8993\u003c/code\u003e\u003c/a\u003e fix: handle missing ISO_TO_LANGUAGE in older chardet versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/chardet/chardet/compare/5.2.0...7.2.0\"\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.4 to 3.4.6\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.6\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.5...3.4.6\"\u003e3.4.6\u003c/a\u003e (2026-03-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlattened the logic in \u003ccode\u003echarset_normalizer.md\u003c/code\u003e for higher performance. Removed \u003ccode\u003eeligible(..)\u003c/code\u003e and \u003ccode\u003efeed(...)\u003c/code\u003e\nin favor of \u003ccode\u003efeed_info(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound for mypy[c] to 1.20, for our optimized version.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eUNICODE_RANGES_COMBINED\u003c/code\u003e using Unicode blocks v17.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEdge case where noise difference between two candidates can be almost insignificant. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/672\"\u003e#672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLI \u003ccode\u003e--normalize\u003c/code\u003e writing to wrong path when passing multiple files in. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/702\"\u003e#702\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFreethreaded pre-built wheels now shipped in PyPI starting with 3.14t. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/616\"\u003e#616\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.4...3.4.5\"\u003e3.4.5\u003c/a\u003e (2026-03-06)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=82\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.19.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd explicit link to lib math in our optimized build. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLogger level not restored correctly for empty byte sequences. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/701\"\u003e#701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeError when passing bytearray to from_bytes. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/703\"\u003e#703\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eApplied safe micro-optimizations in both our noise detector and language detector.\u003c/li\u003e\n\u003cli\u003eRewrote the \u003ccode\u003equery_yes_no\u003c/code\u003e function (inside CLI) to avoid using ambiguous licensed code.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003ecd.py\u003c/code\u003e submodule into mypyc optional compilation to reduce further the performance impact.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003cbr /\u003e\nmypyc changed the usual binary output for the optimized wheel. Beware, especially if using PyInstaller or alike. See \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/714\"\u003ejawah/charset_normalizer#714\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/blockquote\u003e\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.5...3.4.6\"\u003e3.4.6\u003c/a\u003e (2026-03-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlattened the logic in \u003ccode\u003echarset_normalizer.md\u003c/code\u003e for higher performance. Removed \u003ccode\u003eeligible(..)\u003c/code\u003e and \u003ccode\u003efeed(...)\u003c/code\u003e\nin favor of \u003ccode\u003efeed_info(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound for mypy[c] to 1.20, for our optimized version.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eUNICODE_RANGES_COMBINED\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/tektronix/tm_data_types/pull/163","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tektronix%2Ftm_data_types/issues/163","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/163/packages"},{"uuid":"4097008147","node_id":"PR_kwDOILImnc7LoZDe","number":246,"state":"closed","title":"build(deps): bump the pip-minor-deps group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-06T15:05:54.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-18T18:27:02.000Z","updated_at":"2026-04-06T15:05:55.000Z","time_to_close":1629532,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"pip-minor-deps","update_count":11,"packages":[{"name":"panel","old_version":"1.8.7","new_version":"1.8.10","repository_url":"https://github.com/holoviz/panel"},{"name":"sqlalchemy","old_version":"2.0.46","new_version":"2.0.48","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"psycopg","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/psycopg/psycopg"},{"name":"google-cloud-storage","old_version":"3.9.0","new_version":"3.10.0","repository_url":"https://github.com/googleapis/python-storage"},{"name":"mkdocs-material","old_version":"9.7.1","new_version":"9.7.5","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocs-gen-files","old_version":"0.6.0","new_version":"0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-literate-nav","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/oprypin/mkdocs-literate-nav"},{"name":"mkdocs-section-index","old_version":"0.3.10","new_version":"0.3.11","repository_url":"https://github.com/oprypin/mkdocs-section-index"},{"name":"mike","old_version":"2.1.3","new_version":"2.1.4","repository_url":"https://github.com/jimporter/mike"},{"name":"jupyterlab","old_version":"4.5.4","new_version":"4.5.6","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-minor-deps group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [panel](https://github.com/holoviz/panel) | `1.8.7` | `1.8.10` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.46` | `2.0.48` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.3.2` | `3.3.3` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.9.0` | `3.10.0` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.7.1` | `9.7.5` |\n| [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) | `0.6.0` | `0.6.1` |\n| [mkdocs-literate-nav](https://github.com/oprypin/mkdocs-literate-nav) | `0.6.2` | `0.6.3` |\n| [mkdocs-section-index](https://github.com/oprypin/mkdocs-section-index) | `0.3.10` | `0.3.11` |\n| [mike](https://github.com/jimporter/mike) | `2.1.3` | `2.1.4` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.5.4` | `4.5.6` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n\n\nUpdates `panel` from 1.8.7 to 1.8.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/holoviz/panel/releases\"\u003epanel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.8.10\u003c/h2\u003e\n\u003cp\u003ePanel 1.8.10 focuses on stability improvements across widgets, plotting integrations, and server behavior. It includes fixes for Tabulator serialization, Param widget updates, Plotly and Vega regressions, and several UI issues. This release also improves compatibility with \u003cstrong\u003eBokeh 3.9\u003c/strong\u003e, enhances error reporting when serving apps, and addresses a security issue in \u003ccode\u003epanel.js\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eMany thanks to the contributors to this release including:\n\u003ca href=\"https://github.com/philippjfr\"\u003e\u003ccode\u003e@​philippjfr\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/SuMayaBee\"\u003e\u003ccode\u003e@​SuMayaBee\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/AtharvaJaiswal005\"\u003e\u003ccode\u003e@​AtharvaJaiswal005\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/hoxbro\"\u003e\u003ccode\u003e@​hoxbro\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ghostiee-11\"\u003e\u003ccode\u003e@​ghostiee-11\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/tmoulignier\"\u003e\u003ccode\u003e@​tmoulignier\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003e✨ Enhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove Python error messages displayed when serving apps (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8478\"\u003e#8478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003estate.busy\u003c/code\u003e logic to avoid mismatches in busy state tracking (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8498\"\u003e#8498\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow configuring the Panel CDN with the PANEL_CDN_ROOT environment variable or \u003ccode\u003epn.config.cdn_root\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8512\"\u003e#8512\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent spacebar in \u003ccode\u003eCard\u003c/code\u003e header inputs from toggling collapse (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8442\"\u003e#8442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eDateRangeSlider\u003c/code\u003e incorrectly modifying both values with timezone-aware timestamps (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8455\"\u003e#8455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve slider bar color when \u003ccode\u003eAccordion\u003c/code\u003e panels are collapsed or expanded (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8460\"\u003e#8460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix datetime axis type mismatch in \u003ccode\u003elink_axes\u003c/code\u003e after scroll and plot update (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8468\"\u003e#8468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON serialization errors in \u003ccode\u003eTabulator\u003c/code\u003e when using mixed \u003ccode\u003eNaT\u003c/code\u003e datetime columns (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8491\"\u003e#8491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Param widget values not updating when changed inside their own callback (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8492\"\u003e#8492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing validation in \u003ccode\u003e_imgshape\u003c/code\u003e for image panes (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8485\"\u003e#8485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Vega pane not updating when using inline data (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8495\"\u003e#8495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Plotly regressions introduced in earlier 1.8 releases (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8471\"\u003e#8471\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8476\"\u003e#8476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure all \u003ccode\u003eReactiveESM\u003c/code\u003e children render correctly (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8473\"\u003e#8473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003eCodeEditor\u003c/code\u003e annotations are not overridden (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8505\"\u003e#8505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Modal objects update rendering inline instead of in dialog (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8508\"\u003e#8508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent ValueError when \u003ccode\u003eEditableFloatSlider\u003c/code\u003e input is cleared (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8511\"\u003e#8511\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🔒 Security\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddress XSS and prototype overwrite issues in \u003ccode\u003epanel.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8501\"\u003e#8501\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📦 Compatibility \u0026amp; Dependency Updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd compatibility with \u003cstrong\u003eBokeh 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8475\"\u003e#8475\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📚 Documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecommend using bound function references instead of \u003ccode\u003ewatch=True\u003c/code\u003e in the \u003ccode\u003ebind_component\u003c/code\u003e guide (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8479\"\u003e#8479\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🧪 Tests \u0026amp; Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove test robustness (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8502\"\u003e#8502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JupyterLite CI workflow (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8494\"\u003e#8494\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8496\"\u003e#8496\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.9\u003c/h2\u003e\n\u003cp\u003eMany thanks to \u003ca href=\"https://github.com/philippjfr\"\u003e\u003ccode\u003e@​philippjfr\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/hoxbro\"\u003e\u003ccode\u003e@​hoxbro\u003c/code\u003e\u003c/a\u003e for their contributions.\u003c/p\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOnly serialize ESM model definition if session is already loaded (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8462\"\u003e#8462\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/holoviz/panel/blob/main/CHANGELOG.md\"\u003epanel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.8.10\u003c/h2\u003e\n\u003cp\u003ePanel 1.8.10 focuses on stability improvements across widgets, plotting integrations, and server behavior. It includes fixes for Tabulator serialization, Param widget updates, Plotly and Vega regressions, and several UI issues. This release also improves compatibility with \u003cstrong\u003eBokeh 3.9\u003c/strong\u003e, enhances error reporting when serving apps, and addresses a security issue in \u003ccode\u003epanel.js\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eMany thanks to the contributors to this release including:\n\u003ca href=\"https://github.com/philippjfr\"\u003e\u003ccode\u003e@​philippjfr\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/SumaiyaIslam\"\u003e\u003ccode\u003e@​SumaiyaIslam\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/emunsing\"\u003e\u003ccode\u003e@​emunsing\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/AtharvaJaiswal005\"\u003e\u003ccode\u003e@​AtharvaJaiswal005\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/DevilSpecial\"\u003e\u003ccode\u003e@​DevilSpecial\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/DanielAlanBates\"\u003e\u003ccode\u003e@​DanielAlanBates\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/FlorianVerdonck\"\u003e\u003ccode\u003e@​FlorianVerdonck\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ahuang11\"\u003e\u003ccode\u003e@​ahuang11\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/SimonHeybrock\"\u003e\u003ccode\u003e@​SimonHeybrock\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Coderambling\"\u003e\u003ccode\u003e@​Coderambling\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/MarcSkovMadsen\"\u003e\u003ccode\u003e@​MarcSkovMadsen\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ghostiee-11\"\u003e\u003ccode\u003e@​ghostiee-11\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/tmoulignier\"\u003e\u003ccode\u003e@​tmoulignier\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/aadrita\"\u003e\u003ccode\u003e@​aadrita\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003e✨ Enhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove Python error messages displayed when serving apps (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8478\"\u003e#8478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003estate.busy\u003c/code\u003e logic to avoid mismatches in busy state tracking (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8498\"\u003e#8498\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow configuring the Panel CDN with the PANEL_CDN_ROOT environment variable or \u003ccode\u003epn.config.cdn_root\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8512\"\u003e#8512\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eDateRangeSlider\u003c/code\u003e incorrectly modifying both values with timezone-aware timestamps (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8455\"\u003e#8455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve slider bar color when \u003ccode\u003eAccordion\u003c/code\u003e panels are collapsed or expanded (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8460\"\u003e#8460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix datetime axis type mismatch in \u003ccode\u003elink_axes\u003c/code\u003e after scroll and plot update (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8468\"\u003e#8468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON serialization errors in \u003ccode\u003eTabulator\u003c/code\u003e when using mixed \u003ccode\u003eNaT\u003c/code\u003e datetime columns (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8491\"\u003e#8491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Param widget values not updating when changed inside their own callback (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8492\"\u003e#8492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing validation in \u003ccode\u003e_imgshape\u003c/code\u003e for image panes (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8485\"\u003e#8485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Vega pane not updating when using inline data (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8495\"\u003e#8495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Plotly regressions introduced in earlier 1.8 releases (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8471\"\u003e#8471\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8476\"\u003e#8476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure all \u003ccode\u003eReactiveESM\u003c/code\u003e children render correctly (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8473\"\u003e#8473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🔒 Security\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddress XSS and prototype overwrite issues in \u003ccode\u003epanel.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8501\"\u003e#8501\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📦 Compatibility \u0026amp; Dependency Updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd compatibility with \u003cstrong\u003eBokeh 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8475\"\u003e#8475\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📚 Documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecommend using bound function references instead of \u003ccode\u003ewatch=True\u003c/code\u003e in the \u003ccode\u003ebind_component\u003c/code\u003e guide (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8479\"\u003e#8479\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🧪 Tests \u0026amp; Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove test robustness (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8502\"\u003e#8502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JupyterLite CI workflow (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8494\"\u003e#8494\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8496\"\u003e#8496\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.9\u003c/h2\u003e\n\u003cp\u003eMany thanks to \u003ca href=\"https://github.com/philippjfr\"\u003e\u003ccode\u003e@​philippjfr\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/hoxbro\"\u003e\u003ccode\u003e@​hoxbro\u003c/code\u003e\u003c/a\u003e for their contributions.\u003c/p\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOnly serialize ESM model definition if session is already loaded (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8462\"\u003e#8462\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/holoviz/panel/commit/dabdb38c0fdba9685fab0bae2d27cfe40da2add6\"\u003e\u003ccode\u003edabdb38\u003c/code\u003e\u003c/a\u003e Bump panel.js to 1.8.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holoviz/panel/commit/dd1a6f4bdd8a81ae389f3b1f617cd01c9d9c5b63\"\u003e\u003ccode\u003edd1a6f4\u003c/code\u003e\u003c/a\u003e Update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holoviz/panel/commit/e6c2916539ea19b450d76271a3768cc071324309\"\u003e\u003ccode\u003ee6c2916\u003c/code\u003e\u003c/a\u003e ci: Update github action versions (\u003ca href=\"https://redirect.github.com/holoviz/panel/issues/8513\"\u003e#8513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holoviz/panel/commit/e94fddf2969da64ebe7d9b53089b8cf57ea24fa7\"\u003e\u003ccode\u003ee94fddf\u003c/code\u003e\u003c/a\u003e Prevent spacebar in Card header inputs from toggling collapse (\u003ca href=\"https://redirect.github.com/holoviz/panel/issues/8442\"\u003e#8442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holoviz/panel/commit/b8a2b2929b91185cf0d5a3d0845ae114bd4cee32\"\u003e\u003ccode\u003eb8a2b29\u003c/code\u003e\u003c/a\u003e Allow making CDN_ROOT configurable (\u003ca href=\"https://redirect.github.com/holoviz/panel/issues/8512\"\u003e#8512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holoviz/panel/commit/40b1fe6c2616c209ecf2a05bf4b67a94045cf081\"\u003e\u003ccode\u003e40b1fe6\u003c/code\u003e\u003c/a\u003e Fix Modal objects update rendering inline instead of in dialog (\u003ca href=\"https://redirect.github.com/holoviz/panel/issues/8508\"\u003e#8508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holoviz/panel/commit/9a6600911f9303bc77c2365ce7ce21f15209ee40\"\u003e\u003ccode\u003e9a66009\u003c/code\u003e\u003c/a\u003e fix: prevent ValueError when EditableFloatSlider input is cleared (\u003ca href=\"https://redirect.github.com/holoviz/panel/issues/8511\"\u003e#8511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holoviz/panel/commit/2b50a33082facf6fa5292a603e1e2e2424f24ae5\"\u003e\u003ccode\u003e2b50a33\u003c/code\u003e\u003c/a\u003e Fix CodeEditor annotations overwritten by Ace worker (\u003ca href=\"https://redirect.github.com/holoviz/panel/issues/8505\"\u003e#8505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holoviz/panel/commit/f6dc8a722cfb346a232ca1737d65db719a7d3209\"\u003e\u003ccode\u003ef6dc8a7\u003c/code\u003e\u003c/a\u003e Bump panel.js to 1.8.10-rc.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holoviz/panel/commit/cddfd311f30aae192a158ab62e96b74372b368a0\"\u003e\u003ccode\u003ecddfd31\u003c/code\u003e\u003c/a\u003e Add 1.8.10 changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/holoviz/panel/compare/v1.8.7...v1.8.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.46 to 2.0.48\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.48\u003c/h1\u003e\n\u003cp\u003eReleased: March 2, 2026\u003c/p\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [bug]\u003c/strong\u003e Fixed a critical issue in \u003ccode\u003eEngine\u003c/code\u003e where connections created in\nconjunction with the \u003ccode\u003eDialectEvents.do_connect()\u003c/code\u003e event listeners\nwould receive shared, mutable collections for the connection arguments,\nleading to a variety of potential issues including unlimited growth of the\nargument list as well as elements within the parameter dictionary being\nshared among concurrent connection calls.  In particular this could impact\ndo_connect routines making use of complex mutable authentication\nstructures.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13144\"\u003e#13144\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.0.47\u003c/h1\u003e\n\u003cp\u003eReleased: February 24, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue when using ORM mappings with Python 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e feature\nthat no longer requires \u0026quot;future annotations\u0026quot;, where the ORM's introspection\nof the \u003ccode\u003e__init__\u003c/code\u003e method of mapped classes would fail if non-present\nidentifiers in annotations were present.  The vendored \u003ccode\u003egetfullargspec()\u003c/code\u003e\nmethod has been amended to use \u003ccode\u003eFormat.FORWARDREF\u003c/code\u003e under Python 3.14 to\nprevent resolution of names that aren't present.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13104\"\u003e#13104\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [usecase]\u003c/strong\u003e The connection object returned by \u003ccode\u003e_engine.Engine.raw_connection()\u003c/code\u003e\nnow supports the context manager protocol, automatically returning the\nconnection to the pool when exiting the context.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13116\"\u003e#13116\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed an issue in the PostgreSQL dialect where foreign key constraint\nreflection would incorrectly swap or fail to capture \u003ccode\u003eonupdate\u003c/code\u003e and\n\u003ccode\u003eondelete\u003c/code\u003e values when these clauses appeared in a different order than\nexpected in the constraint definition. This issue primarily affected\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg` from 3.3.2 to 3.3.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.3\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRetain \u003ccode\u003eError.pgconn\u003c/code\u003e when raising a single exception for multiple connection\nattempt errors (:ticket:\u003ccode\u003e[#1246](https://github.com/psycopg/psycopg/issues/1246)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eReturn a proper error when server sends \u003ccode\u003eErrorResponse\u003c/code\u003e for a \u003ccode\u003eSync\u003c/code\u003e after\na \u003ccode\u003eParse\u003c/code\u003e (:ticket:\u003ccode\u003e[#1260](https://github.com/psycopg/psycopg/issues/1260)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.3.2\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix race condition in adapters at startup (:ticket:\u003ccode\u003e[#1230](https://github.com/psycopg/psycopg/issues/1230)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003ePsycopg 3.3.1\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix iteration on server-side cursors (:ticket:\u003ccode\u003e[#1226](https://github.com/psycopg/psycopg/issues/1226)\u003c/code\u003e).\u003c/p\u003e\n\u003ch2\u003ePsycopg 3.3.0\u003c/h2\u003e\n\u003cp\u003e.. rubric:: New top-level features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etemplate strings queries \\\u0026lt;template-strings\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1054](https://github.com/psycopg/psycopg/issues/1054)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eMore flexible :ref:\u003ccode\u003ecomposite adaptation\u0026lt;adapt-composite\u0026gt;\u003c/code\u003e: it is now possible\nto adapt Python objects to PostgreSQL composites and back even if they are not\nsequences or if they take keyword arguments (:ticket:\u003ccode\u003e[#932](https://github.com/psycopg/psycopg/issues/932)\u003c/code\u003e, :ticket:\u003ccode\u003e[#1202](https://github.com/psycopg/psycopg/issues/1202)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eCursors are now iterators_, not just iterables_. This means you can call\n\u003ccode\u003enext\u003c/code\u003e\\ \u003ccode\u003e(cur)\u003c/code\u003e or \u003ccode\u003eanext\u003c/code\u003e\\ \u003ccode\u003e(cur)\u003c/code\u003e, which is useful as a :ref:\u003ccode\u003etype-safe expression \u0026lt;typing-fetchone\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1064](https://github.com/psycopg/psycopg/issues/1064)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eCursor.set_result()\u003c/code\u003e and \u003ccode\u003eCursor.results()\u003c/code\u003e to move across the result\nsets of queries executed though \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e or\n\u003ccode\u003e~Cursor.execute()\u003c/code\u003e with multiple statements (:tickets:\u003ccode\u003e[#1080](https://github.com/psycopg/psycopg/issues/1080), [#1170](https://github.com/psycopg/psycopg/issues/1170)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etransaction-status\u003c/code\u003e to report the status during and after a\n\u003ccode\u003e~Connection.transaction()\u003c/code\u003e block (:ticket:\u003ccode\u003e[#969](https://github.com/psycopg/psycopg/issues/969)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/1a8f65a371da3c691111cd4a81141f2cb698eafa\"\u003e\u003ccode\u003e1a8f65a\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/db3c43584320ab5d97e49378e5c9dc09a560b031\"\u003e\u003ccode\u003edb3c435\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1260\"\u003e#1260\u003c/a\u003e from ggevay/sync-error-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/0237586c415ece15102742f5941874c29fb1221c\"\u003e\u003ccode\u003e0237586\u003c/code\u003e\u003c/a\u003e Fix ValueError when server sends ErrorResponse during Sync after Parse\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/cb97ef7063520cb8a0cb5236bb9791f8dc4cc454\"\u003e\u003ccode\u003ecb97ef7\u003c/code\u003e\u003c/a\u003e docs: fix typos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/09c89180f94606dc70475ed863e135f021a11038\"\u003e\u003ccode\u003e09c8918\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1256\"\u003e#1256\u003c/a\u003e from veeceey/fix/tstrings-error-msg-and-docs-improve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/9e74d9646cc3fcbb9d8940182dcdb41119c3fda7\"\u003e\u003ccode\u003e9e74d96\u003c/code\u003e\u003c/a\u003e fix: fix error message incorrectly generated by Claude AI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/0db9d8bb76c48e70dffd48776406fd3ffdc89b5a\"\u003e\u003ccode\u003e0db9d8b\u003c/code\u003e\u003c/a\u003e fix: correct typo in tstrings error message and fix sql.rst docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/86a0e1b2bbf30c564c59bf3497d499e2f220ce0f\"\u003e\u003ccode\u003e86a0e1b\u003c/code\u003e\u003c/a\u003e chore(deps): bump pypa/cibuildwheel in the actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/f5d90fa2a7836c1268c1d43d0d77c431434ad191\"\u003e\u003ccode\u003ef5d90fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1233\"\u003e#1233\u003c/a\u003e from lysnikolaou/pgconn-critical-section\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/d7dc6c7cacc2832fffa0d7e607b5fc171424571d\"\u003e\u003ccode\u003ed7dc6c7\u003c/code\u003e\u003c/a\u003e Merge critical section and nogil blocks into one context manager\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg/compare/3.3.2...3.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-storage` from 3.9.0 to 3.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-storage/releases\"\u003egoogle-cloud-storage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-storage: v3.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.9.0...v3.10.0\"\u003e3.10.0\u003c/a\u003e (2026-03-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Bucket Encryption Enforcement] add support for bucket encryption enforcement config (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1742\"\u003e#1742\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/2a6e8b00e4e6ff57460373f8e628fd363be47811\"\u003e2a6e8b00e4e6ff57460373f8e628fd363be47811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerf Improvments\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Rapid Buckets Reads] Use raw proto access for read resumption strategy (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1764\"\u003e#1764\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/14cfd61ce35365a409650981239ef742cdf375fb\"\u003e14cfd61ce35365a409650981239ef742cdf375fb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets Benchmarks] init mp pool \u0026amp; grpc client once, use os.sched_setaffinity (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1751\"\u003e#1751\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/a9eb82c1b9b3c6ae5717d47b76284ed0deb5f769\"\u003ea9eb82c1b9b3c6ae5717d47b76284ed0deb5f769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets Writes] don't flush at every append, results in bad perf (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1746\"\u003e#1746\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/ab62d728ac7d7be3c4fe9a99d72e35ead310805a\"\u003eab62d728ac7d7be3c4fe9a99d72e35ead310805a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Windows] skip downloading blobs whose name contain \u003ccode\u003e\u0026quot;:\u0026quot; \u003c/code\u003e eg: \u003ccode\u003eC:\u003c/code\u003e \u003ccode\u003eD:\u003c/code\u003e etc when application runs in Windows. (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1774\"\u003e#1774\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/558198823ed51918db9c0137715d1e7f5b593975\"\u003e558198823ed51918db9c0137715d1e7f5b593975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Path Traversal] Prevent path traversal in \u003ccode\u003edownload_many_to_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1768\"\u003e#1768\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a\"\u003e700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets] pass token correctly, '\u0026amp;' instead of ',' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1756\"\u003e#1756\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/d8dd1e074d2431de9b45e0103181dce749a447a0\"\u003ed8dd1e074d2431de9b45e0103181dce749a447a0\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/googleapis/python-storage/blob/main/CHANGELOG.md\"\u003egoogle-cloud-storage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.9.0...v3.10.0\"\u003e3.10.0\u003c/a\u003e (2026-03-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Bucket Encryption Enforcement] add support for bucket encryption enforcement config (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1742\"\u003e#1742\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/2a6e8b00e4e6ff57460373f8e628fd363be47811\"\u003e2a6e8b00e4e6ff57460373f8e628fd363be47811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerf Improvments\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Rapid Buckets Reads] Use raw proto access for read resumption strategy (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1764\"\u003e#1764\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/14cfd61ce35365a409650981239ef742cdf375fb\"\u003e14cfd61ce35365a409650981239ef742cdf375fb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets Benchmarks] init mp pool \u0026amp; grpc client once, use os.sched_setaffinity (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1751\"\u003e#1751\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/a9eb82c1b9b3c6ae5717d47b76284ed0deb5f769\"\u003ea9eb82c1b9b3c6ae5717d47b76284ed0deb5f769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets Writes] don't flush at every append, results in bad perf (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1746\"\u003e#1746\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/ab62d728ac7d7be3c4fe9a99d72e35ead310805a\"\u003eab62d728ac7d7be3c4fe9a99d72e35ead310805a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Windows] skip downloading blobs whose name contain \u003ccode\u003e\u0026quot;:\u0026quot; \u003c/code\u003e eg: \u003ccode\u003eC:\u003c/code\u003e \u003ccode\u003eD:\u003c/code\u003e etc when application runs in Windows. (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1774\"\u003e#1774\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/558198823ed51918db9c0137715d1e7f5b593975\"\u003e558198823ed51918db9c0137715d1e7f5b593975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Path Traversal] Prevent path traversal in \u003ccode\u003edownload_many_to_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1768\"\u003e#1768\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a\"\u003e700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets] pass token correctly, '\u0026amp;' instead of ',' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1756\"\u003e#1756\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/d8dd1e074d2431de9b45e0103181dce749a447a0\"\u003ed8dd1e074d2431de9b45e0103181dce749a447a0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/8b7fbde10c80337c4b4a2f6c8a860e28371a770b\"\u003e\u003ccode\u003e8b7fbde\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260318T145147Z (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1776\"\u003e#1776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/21bb20f4f3fe428388a9339841c68b2dcad029af\"\u003e\u003ccode\u003e21bb20f\u003c/code\u003e\u003c/a\u003e feat(samples): add argparse and clarify traversal support in download_many sn...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/558198823ed51918db9c0137715d1e7f5b593975\"\u003e\u003ccode\u003e5581988\u003c/code\u003e\u003c/a\u003e fix(storage): skip downloading blobs whose name contain \u003ccode\u003e\u0026quot;:\u0026quot; \u003c/code\u003e eg: \u003ccode\u003eC:\u003c/code\u003e \u003ccode\u003eD:\u003c/code\u003e ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/c5735c377d31e9131a3c507098ef659e8112d62e\"\u003e\u003ccode\u003ec5735c3\u003c/code\u003e\u003c/a\u003e feat(storage): support returning skipped items as UserWarning in download_man...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/14cfd61ce35365a409650981239ef742cdf375fb\"\u003e\u003ccode\u003e14cfd61\u003c/code\u003e\u003c/a\u003e feat(storage): Use raw proto access for read resumption strategy (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1764\"\u003e#1764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/2a6e8b00e4e6ff57460373f8e628fd363be47811\"\u003e\u003ccode\u003e2a6e8b0\u003c/code\u003e\u003c/a\u003e feat: add support for bucket encryption enforcement config (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1742\"\u003e#1742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/141f7ac1e3448d894eee9984b39ad8535a2823cf\"\u003e\u003ccode\u003e141f7ac\u003c/code\u003e\u003c/a\u003e chore: skip hmac tests until b/493225655 is fixed (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1771\"\u003e#1771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/35b39b6460f4d1d7a4cd50bab38c4ab2a2dcda4a\"\u003e\u003ccode\u003e35b39b6\u003c/code\u003e\u003c/a\u003e chore: don't use mtls in gcb until b/492452834 is fixed (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1769\"\u003e#1769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/eee4b3c0b4a72155e7fe2c9232dbcef33b817fd6\"\u003e\u003ccode\u003eeee4b3c\u003c/code\u003e\u003c/a\u003e chore: clean up release please configuration files (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1667\"\u003e#1667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a\"\u003e\u003ccode\u003e700fec3\u003c/code\u003e\u003c/a\u003e fix(transfer_manager): Prevent path traversal in \u003ccode\u003edownload_many_to_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1768\"\u003e#1768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.9.0...v3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.7.1 to 9.7.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.5\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.4\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed environment (recommended by \u003ca href=\"https://github.com/caveeroo\"\u003e\u003ccode\u003e@​caveeroo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.2\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to \u003ccode\u003emkdocs build\u003c/code\u003e about impending MkDocs 2.0 incompatibility (doesn't affect strict mode)\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/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.5 (2026-03-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.4 (2026-03-03)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed environment\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.3 (2026-02-24)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8567\"\u003e#8567\u003c/a\u003e: Print MkDocs 2.0 incompatibility warning to stderr\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.2 (2026-02-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to 'mkdocs build' about impending MkDocs 2.0 incompatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pinned blog posts and author profiles\u003c/li\u003e\n\u003cli\u003eAdded support for customizing pagination for blog index pages\u003c/li\u003e\n\u003cli\u003eAdded support for customizing blog category sort order\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/00b9933e5821fd852700268767d4fd53ae1ce1cb\"\u003e\u003ccode\u003e00b9933\u003c/code\u003e\u003c/a\u003e Prepare 9.7.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/37683d12c9cd62309aa917237741ee0886709b7c\"\u003e\u003ccode\u003e37683d1\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/199e31598055d5d6ea538618804c7558f5d81047\"\u003e\u003ccode\u003e199e315\u003c/code\u003e\u003c/a\u003e Updated warning message to clarify relation to MkDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/10258334eb13545e6d708cf121c3867bfbdb6017\"\u003e\u003ccode\u003e1025833\u003c/code\u003e\u003c/a\u003e Limited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/1532f523f6c650c9d6fd16229ee8bec0759b4151\"\u003e\u003ccode\u003e1532f52\u003c/code\u003e\u003c/a\u003e Added update log to blog post\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/d0c8b2862a966f5f268d4a4c35bb4fcfccebb9b1\"\u003e\u003ccode\u003ed0c8b28\u003c/code\u003e\u003c/a\u003e Updated dependencies to fix vulnerabilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/71d48699a0e2bef231e796818c4dc20b230a5f45\"\u003e\u003ccode\u003e71d4869\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/0d30a135a316271d94538e9b0a441f543f56460b\"\u003e\u003ccode\u003e0d30a13\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/8b55995364388ce5ca7ff2c0ca462e24510b7e63\"\u003e\u003ccode\u003e8b55995\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/66d413f8885d68157e7e6ca615f3e6bee0830795\"\u003e\u003ccode\u003e66d413f\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.7.1...9.7.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.6.0 to 0.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-literate-nav` from 0.6.2 to 0.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/releases\"\u003emkdocs-literate-nav's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/pull/39\"\u003eoprypin/mkdocs-literate-nav#39\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ehttps://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.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/oprypin/mkdocs-literate-nav/commit/b91268c263f61e38a7e27f77ccf38ec287e0c0b5\"\u003e\u003ccode\u003eb91268c\u003c/code\u003e\u003c/a\u003e v0.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/cee9ec49a1523036081378a39bda9fa014432526\"\u003e\u003ccode\u003ecee9ec4\u003c/code\u003e\u003c/a\u003e Exclude properdocs when testing minimal dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/ea523f5864f59fb7939f84cd4400df67280ad52c\"\u003e\u003ccode\u003eea523f5\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/258b15a15a3e25cedc816d0a5a971acfdb86541e\"\u003e\u003ccode\u003e258b15a\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-section-index` from 0.3.10 to 0.3.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/releases\"\u003emkdocs-section-index's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/pull/27\"\u003eoprypin/mkdocs-section-index#27\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ehttps://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\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/oprypin/mkdocs-section-index/commit/a8235f6f8eb5927b966a3aaea8afe5fa161ecece\"\u003e\u003ccode\u003ea8235f6\u003c/code\u003e\u003c/a\u003e v0.3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/ac66dfda53834d79ce8e0af6f340dddd7cde2bf9\"\u003e\u003ccode\u003eac66dfd\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/issues/27\"\u003e#27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/32866cd83993ee3eefbac0fcc13911692796d8f6\"\u003e\u003ccode\u003e32866cd\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mike` from 2.1.3 to 2.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jimporter/mike/releases\"\u003emike's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.4\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse built-in \u003ccode\u003eimportlib\u003c/code\u003e in Python 3.10 and greater\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/jimporter/mike/blob/master/CHANGES.md\"\u003emike's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.4 (2026-03-07)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse built-in \u003ccode\u003eimportlib\u003c/code\u003e in Python 3.10 and greater\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/fd2c5dc94acb3fce6b6acad643bae821ce59f323\"\u003e\u003ccode\u003efd2c5dc\u003c/code\u003e\u003c/a\u003e Update version to 2.1.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/6bad2056410c2d4e3fc58f96112d1b620db3b25b\"\u003e\u003ccode\u003e6bad205\u003c/code\u003e\u003c/a\u003e Update copyright year\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/9e5f8769f29b0b2fd638770590beba2876e0c42d\"\u003e\u003ccode\u003e9e5f876\u003c/code\u003e\u003c/a\u003e Remove deprecated license classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/80c47ab27eda456bbee0c883723a57b7a183e478\"\u003e\u003ccode\u003e80c47ab\u003c/code\u003e\u003c/a\u003e Be more consistent with newlines in CHANGES.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/11d4160eea7d356042524628533fbc9bb534d1d3\"\u003e\u003ccode\u003e11d4160\u003c/code\u003e\u003c/a\u003e Use built-in \u003ccode\u003eimportlib\u003c/code\u003e in Python 3.10 and greater\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/bdda184d22b9207288ca32a3650d19e033658ff7\"\u003e\u003ccode\u003ebdda184\u003c/code\u003e\u003c/a\u003e Improve selection of unit test suites on command line\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/d8a9b491355a648cb9417e7256dde42743042882\"\u003e\u003ccode\u003ed8a9b49\u003c/code\u003e\u003c/a\u003e Add CI for Python 3.14 and remove  old workarounds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/97deaed465a424646d163147941b358f9201e9d0\"\u003e\u003ccode\u003e97deaed\u003c/code\u003e\u003c/a\u003e Update copyright\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/64298e2a867d6db3a49a0d0c6126cea4e3946f7d\"\u003e\u003ccode\u003e64298e2\u003c/code\u003e\u003c/a\u003e Update Python version for linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/e6f523a879c4ee80dad2ae38ead6f1ac3b967055\"\u003e\u003ccode\u003ee6f523a\u003c/code\u003e\u003c/a\u003e Test Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jimporter/mike/compare/v2.1.3...v2.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jupyterlab` from 4.5.4 to 4.5.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jupyterlab/jupyterlab/releases\"\u003ejupyterlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.5.6\u003c/h2\u003e\n\u003ch2\u003e4.5.6\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/v4.5.5...a6dda8829b2d6b670de634081d26c1a39be145c4\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplace scrollback implementation with scroll anchoring outside of \u003ccode\u003efull\u003c/code\u003e windowing mode \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18522\"\u003e#18522\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHarmonize translation wrappers in Python files to use \u003ccode\u003egettext\u003c/code\u003e methods \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18597\"\u003e#18597\u003c/a\u003e (\u003ca href=\"https://github.com/tmetzl\"\u003e\u003ccode\u003e@​tmetzl\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unimplemented \u003ccode\u003efilebrowser:search\u003c/code\u003e command \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18593\"\u003e#18593\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix status bar focus outlines \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18585\"\u003e#18585\u003c/a\u003e (\u003ca href=\"https://github.com/IsabelParedes\"\u003e\u003ccode\u003e@​IsabelParedes\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efilebrowser:create-new-file\u003c/code\u003e context menu selector \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18588\"\u003e#18588\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix single-character code blocks rendering as empty \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18572\"\u003e#18572\u003c/a\u003e (\u003ca href=\"https://github.com/soniya-malviy\"\u003e\u003ccode\u003e@​soniya-malviy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003ecode\u003c/code\u003e input in \u003ccode\u003eCodeConsole\u003c/code\u003e when configured \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18554\"\u003e#18554\u003c/a\u003e (\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate benchmark snapshots even if base snapshots require changes \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18549\"\u003e#18549\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2026-02-23\u0026amp;to=2026-03-11\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aagriyakhetarpal+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/IsabelParedes\"\u003e\u003ccode\u003e@​IsabelParedes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AIsabelParedes+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajtpio+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/soniya-malviy\"\u003e\u003ccode\u003e@​soniya-malviy\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Asoniya-malviy+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/tmetzl\"\u003e\u003ccode\u003e@​tmetzl\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Atmetzl+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003ev4.5.5\u003c/h2\u003e\n\u003ch2\u003e4.5.5\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/v4.5.4...4a223c0dbe53f47f03cdff3573fd7e9ccbb2605b\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix theme settings broken in non-English locales \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18530\"\u003e#18530\u003c/a\u003e (\u003ca href=\"https://github.com/apoorvdarshan\"\u003e\u003ccode\u003e@​apoorvdarshan\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix comms subshell resource management on disposal and when changing settings \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18531\"\u003e#18531\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003e@codemirror/view\u003c/code\u003e, fixing slow selection when line wrapping is enabled \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18479\"\u003e#18479\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly turn off overflow anchor when windowing is active \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18503\"\u003e#18503\u003c/a\u003e (\u003ca href=\"https://github.com/jasongrout\"\u003e\u003ccode\u003e@​jasongrout\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix table of contents navigation for Markdown files \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18411\"\u003e#18411\u003c/a\u003e (\u003ca href=\"https://github.com/itsmevichu\"\u003e\u003ccode\u003e@​itsmevichu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to marked 17.0.2 and mermaid 11.12.3 \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18532\"\u003e#18532\u003c/a\u003e (\u003ca href=\"https://github.com/bollwyvl\"\u003e\u003ccode\u003e@​bollwyvl\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/e514705afbea2a1096fa2ffe48489c195ff1a4d2\"\u003e\u003ccode\u003ee514705\u003c/code\u003e\u003c/a\u003e [ci skip] Publish 4.5.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/a6dda8829b2d6b670de634081d26c1a39be145c4\"\u003e\u003ccode\u003ea6dda88\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18522\"\u003e#18522\u003c/a\u003e on branch 4.5.x (Replace scrollback implementation with sc...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/4a28719c1701ccfa31ab282da38a49159cbcb82e\"\u003e\u003ccode\u003e4a28719\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18597\"\u003e#18597\u003c/a\u003e on branch 4.5.x (Harmonize translation wrappers in Python ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/1714c4ab61d14f4cd1a89b726336a9e490170fd6\"\u003e\u003ccode\u003e1714c4a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18593\"\u003e#18593\u003c/a\u003e on branch 4.5.x (Remove unimplemented \u003ccode\u003efilebrowser:search\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/3624bbea0ccc6657aacc339da1550aa3d3c8c790\"\u003e\u003ccode\u003e3624bbe\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18585\"\u003e#18585\u003c/a\u003e on branch 4.5.x (Fix status bar focus outlines) (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18590\"\u003e#18590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/bf99d9d1e9dfb459092d85a7cf8e29fe8404d283\"\u003e\u003ccode\u003ebf99d9d\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18588\"\u003e#18588\u003c/a\u003e on branch 4.5.x (Fix \u003ccode\u003efilebrowser:create-new-file\u003c/code\u003e context...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/5b6dee951eee70f8806ef4a18c6a4e20c0cf5778\"\u003e\u003ccode\u003e5b6dee9\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18572\"\u003e#18572\u003c/a\u003e on branch 4.5.x (Fix single-character code blocks renderin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/da80d67c2805d10708a1914628c00ee983d57793\"\u003e\u003ccode\u003eda80d67\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18554\"\u003e#18554\u003c/a\u003e on branch 4.5.x (Hide \u003ccode\u003ecode\u003c/code\u003e input in \u003ccode\u003eCodeConsole\u003c/code\u003e when c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/5267a8c4f68366155f1e44e3e7a14c8c9d850076\"\u003e\u003ccode\u003e5267a8c\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18549\"\u003e#18549\u003c/a\u003e on branch 4.5.x (Update benchmark snapshots even if base s...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/72d29f47eb557c5ee9986a24ac39cc411e6f9ed6\"\u003e\u003ccode\u003e72d29f4\u003c/code\u003e\u003c/a\u003e [ci skip] Publish 4.5.5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/@jupyterlab/lsp@4.5.4...@jupyterlab/lsp@4.5.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-mock` from 3.14.0 to 3.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-mock/releases\"\u003epytest-mock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.15.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-16\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/529\"\u003e#529\u003c/a\u003e: Fixed \u003ccode\u003eitertools._tee object has no attribute error\u003c/code\u003e -- now \u003ccode\u003eduplicate_iterators=True\u003c/code\u003e must be passed to \u003ccode\u003emocker.spy\u003c/code\u003e to duplicate iterators.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.15.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-04\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 (EOL) is no longer supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/pull/524\"\u003e#524\u003c/a\u003e: Added \u003ccode\u003espy_return_iter\u003c/code\u003e to \u003ccode\u003emocker.spy\u003c/code\u003e, which contains a duplicate of the return value of the spied method if it is an \u003ccode\u003eIterator\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.14.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/pull/503\"\u003e#503\u003c/a\u003e: Python 3.14 is now officially supported.\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/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst\"\u003epytest-mock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.15.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-16\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#529](https://github.com/pytest-dev/pytest-mock/issues/529) \u0026lt;https://github.com/pytest-dev/pytest-mock/issues/529\u0026gt;\u003c/code\u003e_: Fixed \u003ccode\u003eitertools._tee object has no attribute error\u003c/code\u003e -- now \u003ccode\u003eduplicate_iterators=True\u003c/code\u003e must be passed to \u003ccode\u003emocker.spy\u003c/code\u003e to duplicate iterators.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.15.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-04\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 (EOL) is no longer supported.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#524](https://github.com/pytest-dev/pytest-mock/issues/524) \u0026lt;https://github.com/pytest-dev/pytest-mock/pull/524\u0026gt;\u003c/code\u003e_: Added \u003ccode\u003espy_return_iter\u003c/code\u003e to \u003ccode\u003emocker.spy\u003c/code\u003e, which contains a duplicate of the return value of the spied method if it is an \u003ccode\u003eIterator\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.14.1 (2025-05-26)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#503](https://github.com/pytest-dev/pytest-mock/issues/503) \u0026lt;https://github.com/pytest-dev/pytest-mock/pull/503\u0026gt;\u003c/code\u003e_: Python 3.14 is now officially supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-mock/commit/e1b5c62a38c5a05cae614aef3847f240ba50d269\"\u003e\u003ccode\u003ee1b5c62\u003c/code\u003e\u003c/a\u003e Release 3.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/184eb190d6be417f5f33727bcbc9704909479498\"\u003e\u003ccode\u003e184eb19\u003c/code\u003e\u003c/a\u003e Set \u003ccode\u003espy_return_iter\u003c/code\u003e only when explicitly requested (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/537\"\u003e#537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/4fa0088a0aa85eefb1313bd97adf43889bf1f647\"\u003e\u003ccode\u003e4fa0088\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/f5aff33ce71ed4620acc43dc41cb3b198bcf4cb0\"\u003e\u003ccode\u003ef5aff33\u003c/code\u003e\u003c/a\u003e Fix test failure with pytest 8+ and verbose mode (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/535\"\u003e#535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/adc41873c9d6aa69b87e3f108c93a29c847869aa\"\u003e\u003ccode\u003eadc4187\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/95ad5700609aae73c6f767b8cc2ccfb2483e0f5c\"\u003e\u003ccode\u003e95ad570\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/e696bf02c199b1f7d0c48adb450f40e5a75b699a\"\u003e\u003ccode\u003ee696bf0\u003c/code\u003e\u003c/a\u003e Fix standalone mock support (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/5b29b03ce9581cfcd867dd6c04a970fb2c861291\"\u003e\u003ccode\u003e5b29b03\u003c/code\u003e\u003c/a\u003e Fix gen-release-notes script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/7d22ef4e560351832e60687d8bd15ebe2785ff3b\"\u003e\u003ccode\u003e7d22ef4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/528\"\u003e#528\u003c/a\u003e from pytest-dev/release-3.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/90b29f89e2086c139a7b4fea89202faa192ee5a9\"\u003e\u003ccode\u003e90b29f8\u003c/code\u003e\u003c/a\u003e Update CHANGELOG for 3.15.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-mock/compare/v3.14.0...v3.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/Michele-Alberti/data-lunch/pull/246","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Michele-Alberti%2Fdata-lunch/issues/246","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/246/packages"},{"uuid":"4087649545","node_id":"PR_kwDOM9ltoc7LLnLn","number":600,"state":"closed","title":"chore(deps-dev): bump the python-dependencies group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-03-24T10:31:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-17T10:35:09.000Z","updated_at":"2026-03-24T10:31:43.000Z","time_to_close":604592,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): bump","group_name":"python-dependencies","update_count":10,"packages":[{"name":"pytest-celery","old_version":"1.2.1","new_version":"1.3.0","repository_url":"https://github.com/celery/pytest-celery"},{"name":"ruff","old_version":"0.15.2","new_version":"0.15.6","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mkdocs-material","old_version":"9.7.2","new_version":"9.7.5","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocs-gen-files","old_version":"0.6.0","new_version":"0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-section-index","old_version":"0.3.10","new_version":"0.3.11","repository_url":"https://github.com/oprypin/mkdocs-section-index"},{"name":"mkdocs-literate-nav","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/oprypin/mkdocs-literate-nav"},{"name":"jupyterlab","old_version":"4.5.5","new_version":"4.5.6","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"notebook","old_version":"7.5.3","new_version":"7.5.5","repository_url":"https://github.com/jupyter/notebook"},{"name":"celery-types","old_version":"0.24.0","new_version":"0.26.0","repository_url":"https://github.com/sbdchd/celery-types"},{"name":"types-tqdm","old_version":"4.67.3.20260205","new_version":"4.67.3.20260303","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest-celery](https://github.com/celery/pytest-celery) | `1.2.1` | `1.3.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.2` | `0.15.6` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.7.2` | `9.7.5` |\n| [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) | `0.6.0` | `0.6.1` |\n| [mkdocs-section-index](https://github.com/oprypin/mkdocs-section-index) | `0.3.10` | `0.3.11` |\n| [mkdocs-literate-nav](https://github.com/oprypin/mkdocs-literate-nav) | `0.6.2` | `0.6.3` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.5.5` | `4.5.6` |\n| [notebook](https://github.com/jupyter/notebook) | `7.5.3` | `7.5.5` |\n| [celery-types](https://github.com/sbdchd/celery-types) | `0.24.0` | `0.26.0` |\n| [types-tqdm](https://github.com/typeshed-internal/stub_uploader) | `4.67.3.20260205` | `4.67.3.20260303` |\n\n\nUpdates `pytest-celery` from 1.2.1 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/pytest-celery/releases\"\u003epytest-celery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eKey Highlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDropped Python 3.8 support.\u003c/li\u003e\n\u003cli\u003eAdded Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eReverted \u003ca href=\"https://pypi.org/project/pycurl/\"\u003epycurl\u003c/a\u003e removal to match celery/kombu v5.6 SQS transport.\u003c/li\u003e\n\u003cli\u003eMade pytest-celery package install configurable in worker Dockerfile.\u003c/li\u003e\n\u003cli\u003eFixed type annotations in \u003ccode\u003eCeleryTestCluster\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setuptools from dependencies by \u003ca href=\"https://github.com/dotlambda\"\u003e\u003ccode\u003e@​dotlambda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/464\"\u003ecelery/pytest-celery#464\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShift Python versions (-3.8, +3.14) by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/468\"\u003ecelery/pytest-celery#468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBumping Poetry from v1.8.4 -\u0026gt; v2.2.1 inc. dependencies (\u003ccode\u003epoetry update --with test,dev,ci,docs\u003c/code\u003e) by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/469\"\u003ecelery/pytest-celery#469\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInstall local source in the examples by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/458\"\u003ecelery/pytest-celery#458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse Poetry 1.8.4 in ReadTheDocs by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/470\"\u003ecelery/pytest-celery#470\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemoved --dist=loadscope by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/473\"\u003ecelery/pytest-celery#473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert pycurl removal to match celery/kombu v5.6 SQS transport by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/474\"\u003ecelery/pytest-celery#474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake pytest-celery package install configurable in worker Dockerfile by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/475\"\u003ecelery/pytest-celery#475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(typing): Fix *nodes type annotations in CeleryTestCluster by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/476\"\u003ecelery/pytest-celery#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v1.3.0 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/477\"\u003ecelery/pytest-celery#477\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/dotlambda\"\u003e\u003ccode\u003e@​dotlambda\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/464\"\u003ecelery/pytest-celery#464\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/pytest-celery/compare/v1.2.1...v1.3.0\"\u003ehttps://github.com/celery/pytest-celery/compare/v1.2.1...v1.3.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/celery/pytest-celery/blob/main/Changelog.rst\"\u003epytest-celery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.3.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2 March, 2026\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003ch1\u003eWhat's Changed\u003c/h1\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped Python 3.8 support.\u003c/li\u003e\n\u003cli\u003eAdded Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eReverted :pypi:\u003ccode\u003epycurl\u003c/code\u003e removal to match celery/kombu v5.6 SQS transport.\u003c/li\u003e\n\u003cli\u003eMade pytest-celery package install configurable in worker Dockerfile.\u003c/li\u003e\n\u003cli\u003eFixed type annotations in \u003ccode\u003eCeleryTestCluster\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eremove setuptools from dependencies (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eShift Python versions (-3.8, +3.14) (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumping Poetry from v1.8.4 -\u0026gt; v2.2.1 inc. dependencies (\u003ccode\u003epoetry update --with test,dev,ci,docs\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/469\"\u003e#469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInstall local source in the examples (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/458\"\u003e#458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse Poetry 1.8.4 in ReadTheDocs (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/470\"\u003e#470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved --dist=loadscope (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/473\"\u003e#473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert pycurl removal to match celery/kombu v5.6 SQS transport (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake pytest-celery package install configurable in worker Dockerfile (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/475\"\u003e#475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(typing): Fix nodes type annotations in CeleryTestCluster (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v1.3.0 (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-1.2.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/celery/pytest-celery/commit/ed30e5890a308630b1066f2f2d0a39779e1d96c0\"\u003e\u003ccode\u003eed30e58\u003c/code\u003e\u003c/a\u003e Prepare for release: v1.3.0 (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/pytest-celery/commit/fe88c227f1f4030086b85b3e4877cf5e6b5cbd22\"\u003e\u003ccode\u003efe88c22\u003c/code\u003e\u003c/a\u003e fix(typing): Fix *nodes type annotations in CeleryTestCluster (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/pytest-celery/commit/f00b0c26c463765d3e5fcc8d92cc49302e77eb8c\"\u003e\u003ccode\u003ef00b0c2\u003c/code\u003e\u003c/a\u003e Make pytest-celery package install configurable in worker Dockerfile (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/475\"\u003e#475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/pytest-celery/commit/c045029bdfd8e1cb86704c8915897c6803003d89\"\u003e\u003ccode\u003ec045029\u003c/code\u003e\u003c/a\u003e Revert pycurl removal to match celery/kombu v5.6 SQS transport (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/pytest-celery/commit/83866701ff328cf510f66f2c0546783fda42d3cf\"\u003e\u003ccode\u003e8386670\u003c/code\u003e\u003c/a\u003e Removed --dist=loadscope (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/473\"\u003e#473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/pytest-celery/commit/20a8af5acba9054c7ae5505db7870ea85ce683f4\"\u003e\u003ccode\u003e20a8af5\u003c/code\u003e\u003c/a\u003e Use Poetry 1.8.4 in ReadTheDocs (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/470\"\u003e#470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/pytest-celery/commit/1ab5825fb90caa2c7ddf847c693570d020f6debb\"\u003e\u003ccode\u003e1ab5825\u003c/code\u003e\u003c/a\u003e Install local source in the examples (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/458\"\u003e#458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/pytest-celery/commit/615b62146186a6af2894a3931a33bd07e2675089\"\u003e\u003ccode\u003e615b621\u003c/code\u003e\u003c/a\u003e Bumping Poetry from v1.8.4 -\u0026gt; v2.2.1 inc. dependencies (poetry update --with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/pytest-celery/commit/6e1a4b984c52324959890cb110dc614250c17c70\"\u003e\u003ccode\u003e6e1a4b9\u003c/code\u003e\u003c/a\u003e Shift Python versions (-3.8, +3.14) (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/pytest-celery/commit/a74eaf68110aea5fd2ac6d27475154f25f127498\"\u003e\u003ccode\u003ea74eaf6\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/467\"\u003e#467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/pytest-celery/compare/v1.2.1...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.2 to 0.15.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.6\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-12.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003elazy\u003c/code\u003e import parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23755\"\u003e#23755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for star-unpacking of comprehensions (PEP 798) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23788\"\u003e#23788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject semantic syntax errors for lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23757\"\u003e#23757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop a few rules from the preview default set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23879\"\u003e#23879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag \u003ccode\u003eVariable.get()\u003c/code\u003e calls outside of task execution context (\u003ccode\u003eAIR003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23584\"\u003e#23584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag runtime-varying values in DAG/task constructor arguments (\u003ccode\u003eAIR304\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23631\"\u003e#23631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003edelattr-with-constant\u003c/code\u003e (\u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23737\"\u003e#23737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Add \u003ccode\u003eTID254\u003c/code\u003e to enforce lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23777\"\u003e#23777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow users to ban lazy imports with \u003ccode\u003eTID254\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23847\"\u003e#23847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Retain \u003ccode\u003elazy\u003c/code\u003e keyword when sorting imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23762\"\u003e#23762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e automatically (\u003ccode\u003eUP006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23260\"\u003e#23260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Support \u003ccode\u003enewline\u003c/code\u003e parameter in \u003ccode\u003eFURB101\u003c/code\u003e for Python 3.13+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23754\"\u003e#23754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eos-path-commonprefix\u003c/code\u003e (\u003ccode\u003eRUF071\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23814\"\u003e#23814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add unsafe fix for os-path-commonprefix (\u003ccode\u003eRUF071\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23852\"\u003e#23852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Limit \u003ccode\u003eRUF036\u003c/code\u003e to typing contexts; make it unsafe for non-typing-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23765\"\u003e#23765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Use starred unpacking for \u003ccode\u003eRUF017\u003c/code\u003e in Python 3.15+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23789\"\u003e#23789\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--add-noqa\u003c/code\u003e creating unwanted leading whitespace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23773\"\u003e#23773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e--add-noqa\u003c/code\u003e breaking shebangs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23577\"\u003e#23577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Fix lambda body formatting for multiline calls and subscripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23866\"\u003e#23866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Preserve required annotation parentheses in annotated assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23865\"\u003e#23865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Preserve type-expression parentheses in the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23867\"\u003e#23867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Fix stack overflow in \u003ccode\u003eANN401\u003c/code\u003e on quoted annotations with escape sequences (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23912\"\u003e#23912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epep8-naming\u003c/code\u003e] Check naming conventions in \u003ccode\u003ematch\u003c/code\u003e pattern bindings (\u003ccode\u003eN806\u003c/code\u003e, \u003ccode\u003eN815\u003c/code\u003e, \u003ccode\u003eN816\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23899\"\u003e#23899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix comment duplication in fixes (\u003ccode\u003ePERF401\u003c/code\u003e, \u003ccode\u003ePERF403\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23729\"\u003e#23729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Properly trigger \u003ccode\u003esuper\u003c/code\u003e change in nested class (\u003ccode\u003eUP008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22677\"\u003e#22677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid syntax errors in \u003ccode\u003eRUF036\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23764\"\u003e#23764\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-bandit\u003c/code\u003e] Flag \u003ccode\u003eS501\u003c/code\u003e with \u003ccode\u003erequests.request\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23873\"\u003e#23873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-executable\u003c/code\u003e] Fix WSL detection in non-Docker containers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22879\"\u003e#22879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-print\u003c/code\u003e] Ignore \u003ccode\u003epprint\u003c/code\u003e calls with \u003ccode\u003estream=\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23787\"\u003e#23787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs for Markdown code block formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23871\"\u003e#23871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix misleading description for \u003ccode\u003eB904\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23731\"\u003e#23731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-12.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003elazy\u003c/code\u003e import parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23755\"\u003e#23755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for star-unpacking of comprehensions (PEP 798) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23788\"\u003e#23788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject semantic syntax errors for lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23757\"\u003e#23757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop a few rules from the preview default set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23879\"\u003e#23879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag \u003ccode\u003eVariable.get()\u003c/code\u003e calls outside of task execution context (\u003ccode\u003eAIR003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23584\"\u003e#23584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag runtime-varying values in DAG/task constructor arguments (\u003ccode\u003eAIR304\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23631\"\u003e#23631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003edelattr-with-constant\u003c/code\u003e (\u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23737\"\u003e#23737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Add \u003ccode\u003eTID254\u003c/code\u003e to enforce lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23777\"\u003e#23777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow users to ban lazy imports with \u003ccode\u003eTID254\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23847\"\u003e#23847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Retain \u003ccode\u003elazy\u003c/code\u003e keyword when sorting imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23762\"\u003e#23762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e automatically (\u003ccode\u003eUP006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23260\"\u003e#23260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Support \u003ccode\u003enewline\u003c/code\u003e parameter in \u003ccode\u003eFURB101\u003c/code\u003e for Python 3.13+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23754\"\u003e#23754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eos-path-commonprefix\u003c/code\u003e (\u003ccode\u003eRUF071\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23814\"\u003e#23814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add unsafe fix for os-path-commonprefix (\u003ccode\u003eRUF071\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23852\"\u003e#23852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Limit \u003ccode\u003eRUF036\u003c/code\u003e to typing contexts; make it unsafe for non-typing-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23765\"\u003e#23765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Use starred unpacking for \u003ccode\u003eRUF017\u003c/code\u003e in Python 3.15+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23789\"\u003e#23789\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--add-noqa\u003c/code\u003e creating unwanted leading whitespace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23773\"\u003e#23773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e--add-noqa\u003c/code\u003e breaking shebangs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23577\"\u003e#23577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Fix lambda body formatting for multiline calls and subscripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23866\"\u003e#23866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Preserve required annotation parentheses in annotated assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23865\"\u003e#23865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Preserve type-expression parentheses in the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23867\"\u003e#23867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Fix stack overflow in \u003ccode\u003eANN401\u003c/code\u003e on quoted annotations with escape sequences (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23912\"\u003e#23912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epep8-naming\u003c/code\u003e] Check naming conventions in \u003ccode\u003ematch\u003c/code\u003e pattern bindings (\u003ccode\u003eN806\u003c/code\u003e, \u003ccode\u003eN815\u003c/code\u003e, \u003ccode\u003eN816\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23899\"\u003e#23899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix comment duplication in fixes (\u003ccode\u003ePERF401\u003c/code\u003e, \u003ccode\u003ePERF403\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23729\"\u003e#23729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Properly trigger \u003ccode\u003esuper\u003c/code\u003e change in nested class (\u003ccode\u003eUP008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22677\"\u003e#22677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid syntax errors in \u003ccode\u003eRUF036\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23764\"\u003e#23764\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-bandit\u003c/code\u003e] Flag \u003ccode\u003eS501\u003c/code\u003e with \u003ccode\u003erequests.request\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23873\"\u003e#23873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-executable\u003c/code\u003e] Fix WSL detection in non-Docker containers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22879\"\u003e#22879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-print\u003c/code\u003e] Ignore \u003ccode\u003epprint\u003c/code\u003e calls with \u003ccode\u003estream=\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23787\"\u003e#23787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs for Markdown code block formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23871\"\u003e#23871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix misleading description for \u003ccode\u003eB904\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23731\"\u003e#23731\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/zsol\"\u003e\u003ccode\u003e@​zsol\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/e4c7f357777a2fdd34dbe6a98b1b7d3e7488f675\"\u003e\u003ccode\u003ee4c7f35\u003c/code\u003e\u003c/a\u003e Bump 0.15.6 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23919\"\u003e#23919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/edfe6c17a493669227da45ce7edc786208d9d0b0\"\u003e\u003ccode\u003eedfe6c1\u003c/code\u003e\u003c/a\u003e [ty] Narrow type context during collection literal inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23844\"\u003e#23844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dd16d689abd9d0fa1caf4316e70479fd422b6142\"\u003e\u003ccode\u003edd16d68\u003c/code\u003e\u003c/a\u003e Exclude broken symlink in ecosystem check (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23921\"\u003e#23921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/3f94c6ac6397cdc3160459d9d6e3892e3f3242dd\"\u003e\u003ccode\u003e3f94c6a\u003c/code\u003e\u003c/a\u003e Fix stack overflow in ANN401 on quoted annotations with escape sequences (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23\"\u003e#23\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/91fc7bd3f936974d7107ba8fd0668bc251a55c58\"\u003e\u003ccode\u003e91fc7bd\u003c/code\u003e\u003c/a\u003e [ty] Fix false-positive diagnostics for PEP-604 union annotations on attribut...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/04229cffb44dfe8c64a0879eb3cea472a08d1565\"\u003e\u003ccode\u003e04229cf\u003c/code\u003e\u003c/a\u003e [ty] Initial test suite for PEP-728 \u003ccode\u003eTypedDict\u003c/code\u003e features (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23832\"\u003e#23832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/728b9d6fd300d492fc2572bcfade170141296f97\"\u003e\u003ccode\u003e728b9d6\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epep8-naming\u003c/code\u003e] Check naming conventions in \u003ccode\u003ematch\u003c/code\u003e pattern bindings (\u003ccode\u003eN806\u003c/code\u003e,...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/88d1eecd261679fc9d1d10f30d814230a7f28513\"\u003e\u003ccode\u003e88d1eec\u003c/code\u003e\u003c/a\u003e [ty] Ensure a \u003ccode\u003etype[]\u003c/code\u003e type \u003ccode\u003eT\u003c/code\u003e is always considered assignable to a union th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/37cdd61406ad4965847c9baa7c3f6ca633887d68\"\u003e\u003ccode\u003e37cdd61\u003c/code\u003e\u003c/a\u003e Fix lambda body formatting for multiline calls and subscripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23866\"\u003e#23866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a25a4df54aca67d23b4867ddad634fe0768fd6a2\"\u003e\u003ccode\u003ea25a4df\u003c/code\u003e\u003c/a\u003e [ty] Disambiguate duplicate-looking overloaded callables in union display (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.2...0.15.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.7.2 to 9.7.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.5\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.4\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed environment (recommended by \u003ca href=\"https://github.com/caveeroo\"\u003e\u003ccode\u003e@​caveeroo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\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/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.5 (2026-03-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.4 (2026-03-03)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed environment\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.3 (2026-02-24)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8567\"\u003e#8567\u003c/a\u003e: Print MkDocs 2.0 incompatibility warning to stderr\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.2 (2026-02-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to 'mkdocs build' about impending MkDocs 2.0 incompatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pinned blog posts and author profiles\u003c/li\u003e\n\u003cli\u003eAdded support for customizing pagination for blog index pages\u003c/li\u003e\n\u003cli\u003eAdded support for customizing blog category sort order\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/00b9933e5821fd852700268767d4fd53ae1ce1cb\"\u003e\u003ccode\u003e00b9933\u003c/code\u003e\u003c/a\u003e Prepare 9.7.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/37683d12c9cd62309aa917237741ee0886709b7c\"\u003e\u003ccode\u003e37683d1\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/199e31598055d5d6ea538618804c7558f5d81047\"\u003e\u003ccode\u003e199e315\u003c/code\u003e\u003c/a\u003e Updated warning message to clarify relation to MkDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/10258334eb13545e6d708cf121c3867bfbdb6017\"\u003e\u003ccode\u003e1025833\u003c/code\u003e\u003c/a\u003e Limited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/1532f523f6c650c9d6fd16229ee8bec0759b4151\"\u003e\u003ccode\u003e1532f52\u003c/code\u003e\u003c/a\u003e Added update log to blog post\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/d0c8b2862a966f5f268d4a4c35bb4fcfccebb9b1\"\u003e\u003ccode\u003ed0c8b28\u003c/code\u003e\u003c/a\u003e Updated dependencies to fix vulnerabilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/71d48699a0e2bef231e796818c4dc20b230a5f45\"\u003e\u003ccode\u003e71d4869\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/0d30a135a316271d94538e9b0a441f543f56460b\"\u003e\u003ccode\u003e0d30a13\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/8b55995364388ce5ca7ff2c0ca462e24510b7e63\"\u003e\u003ccode\u003e8b55995\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/66d413f8885d68157e7e6ca615f3e6bee0830795\"\u003e\u003ccode\u003e66d413f\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.7.2...9.7.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.6.0 to 0.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-section-index` from 0.3.10 to 0.3.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/releases\"\u003emkdocs-section-index's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/pull/27\"\u003eoprypin/mkdocs-section-index#27\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ehttps://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\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/oprypin/mkdocs-section-index/commit/a8235f6f8eb5927b966a3aaea8afe5fa161ecece\"\u003e\u003ccode\u003ea8235f6\u003c/code\u003e\u003c/a\u003e v0.3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/ac66dfda53834d79ce8e0af6f340dddd7cde2bf9\"\u003e\u003ccode\u003eac66dfd\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/issues/27\"\u003e#27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/32866cd83993ee3eefbac0fcc13911692796d8f6\"\u003e\u003ccode\u003e32866cd\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-literate-nav` from 0.6.2 to 0.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/releases\"\u003emkdocs-literate-nav's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/pull/39\"\u003eoprypin/mkdocs-literate-nav#39\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ehttps://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.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/oprypin/mkdocs-literate-nav/commit/b91268c263f61e38a7e27f77ccf38ec287e0c0b5\"\u003e\u003ccode\u003eb91268c\u003c/code\u003e\u003c/a\u003e v0.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/cee9ec49a1523036081378a39bda9fa014432526\"\u003e\u003ccode\u003ecee9ec4\u003c/code\u003e\u003c/a\u003e Exclude properdocs when testing minimal dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/ea523f5864f59fb7939f84cd4400df67280ad52c\"\u003e\u003ccode\u003eea523f5\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/258b15a15a3e25cedc816d0a5a971acfdb86541e\"\u003e\u003ccode\u003e258b15a\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jupyterlab` from 4.5.5 to 4.5.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jupyterlab/jupyterlab/releases\"\u003ejupyterlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.5.6\u003c/h2\u003e\n\u003ch2\u003e4.5.6\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/v4.5.5...a6dda8829b2d6b670de634081d26c1a39be145c4\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplace scrollback implementation with scroll anchoring outside of \u003ccode\u003efull\u003c/code\u003e windowing mode \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18522\"\u003e#18522\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHarmonize translation wrappers in Python files to use \u003ccode\u003egettext\u003c/code\u003e methods \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18597\"\u003e#18597\u003c/a\u003e (\u003ca href=\"https://github.com/tmetzl\"\u003e\u003ccode\u003e@​tmetzl\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unimplemented \u003ccode\u003efilebrowser:search\u003c/code\u003e command \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18593\"\u003e#18593\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix status bar focus outlines \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18585\"\u003e#18585\u003c/a\u003e (\u003ca href=\"https://github.com/IsabelParedes\"\u003e\u003ccode\u003e@​IsabelParedes\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efilebrowser:create-new-file\u003c/code\u003e context menu selector \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18588\"\u003e#18588\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix single-character code blocks rendering as empty \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18572\"\u003e#18572\u003c/a\u003e (\u003ca href=\"https://github.com/soniya-malviy\"\u003e\u003ccode\u003e@​soniya-malviy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003ecode\u003c/code\u003e input in \u003ccode\u003eCodeConsole\u003c/code\u003e when configured \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18554\"\u003e#18554\u003c/a\u003e (\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate benchmark snapshots even if base snapshots require changes \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18549\"\u003e#18549\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2026-02-23\u0026amp;to=2026-03-11\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aagriyakhetarpal+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/IsabelParedes\"\u003e\u003ccode\u003e@​IsabelParedes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AIsabelParedes+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajtpio+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/soniya-malviy\"\u003e\u003ccode\u003e@​soniya-malviy\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Asoniya-malviy+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/tmetzl\"\u003e\u003ccode\u003e@​tmetzl\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Atmetzl+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\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/jupyterlab/jupyterlab/commit/e514705afbea2a1096fa2ffe48489c195ff1a4d2\"\u003e\u003ccode\u003ee514705\u003c/code\u003e\u003c/a\u003e [ci skip] Publish 4.5.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/a6dda8829b2d6b670de634081d26c1a39be145c4\"\u003e\u003ccode\u003ea6dda88\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18522\"\u003e#18522\u003c/a\u003e on branch 4.5.x (Replace scrollback implementation with sc...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/4a28719c1701ccfa31ab282da38a49159cbcb82e\"\u003e\u003ccode\u003e4a28719\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18597\"\u003e#18597\u003c/a\u003e on branch 4.5.x (Harmonize translation wrappers in Python ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/1714c4ab61d14f4cd1a89b726336a9e490170fd6\"\u003e\u003ccode\u003e1714c4a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18593\"\u003e#18593\u003c/a\u003e on branch 4.5.x (Remove unimplemented \u003ccode\u003efilebrowser:search\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/3624bbea0ccc6657aacc339da1550aa3d3c8c790\"\u003e\u003ccode\u003e3624bbe\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18585\"\u003e#18585\u003c/a\u003e on branch 4.5.x (Fix status bar focus outlines) (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18590\"\u003e#18590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/bf99d9d1e9dfb459092d85a7cf8e29fe8404d283\"\u003e\u003ccode\u003ebf99d9d\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18588\"\u003e#18588\u003c/a\u003e on branch 4.5.x (Fix \u003ccode\u003efilebrowser:create-new-file\u003c/code\u003e context...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/5b6dee951eee70f8806ef4a18c6a4e20c0cf5778\"\u003e\u003ccode\u003e5b6dee9\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18572\"\u003e#18572\u003c/a\u003e on branch 4.5.x (Fix single-character code blocks renderin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/da80d67c2805d10708a1914628c00ee983d57793\"\u003e\u003ccode\u003eda80d67\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18554\"\u003e#18554\u003c/a\u003e on branch 4.5.x (Hide \u003ccode\u003ecode\u003c/code\u003e input in \u003ccode\u003eCodeConsole\u003c/code\u003e when c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/5267a8c4f68366155f1e44e3e7a14c8c9d850076\"\u003e\u003ccode\u003e5267a8c\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18549\"\u003e#18549\u003c/a\u003e on branch 4.5.x (Update benchmark snapshots even if base s...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/@jupyterlab/lsp@4.5.5...@jupyterlab/lsp@4.5.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `notebook` from 7.5.3 to 7.5.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jupyter/notebook/releases\"\u003enotebook's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.5\u003c/h2\u003e\n\u003ch2\u003e7.5.5\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.4...4f8438b0c67dc4f010bf8cd052da4f16e2ed3828\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to JupyterLab v4.5.6 \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7861\"\u003e#7861\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[7.5.x] Drop Python 3.9 on CI \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7860\"\u003e#7860\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix check links \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7857\"\u003e#7857\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/graphs/contributors?from=2026-02-24\u0026amp;to=2026-03-11\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2026-02-24..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003ev7.5.4\u003c/h2\u003e\n\u003ch2\u003e7.5.4\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.3...e5d8418b706fcefd4208bb61c22399dd3123555b\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to JupyterLab v4.5.5 \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7842\"\u003e#7842\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PyO3 CI failure with Python 3.15 \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7836\"\u003e#7836\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/graphs/contributors?from=2026-01-26\u0026amp;to=2026-02-24\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2026-01-26..2026-02-24\u0026amp;type=Issues\"\u003eactivity\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/jupyter/notebook/blob/@jupyter-notebook/tree@7.5.5/CHANGELOG.md\"\u003enotebook's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.5.5\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.4...4f8438b0c67dc4f010bf8cd052da4f16e2ed3828\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to JupyterLab v4.5.6 \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7861\"\u003e#7861\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[7.5.x] Drop Python 3.9 on CI \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7860\"\u003e#7860\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix check links \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7857\"\u003e#7857\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/graphs/contributors?from=2026-02-24\u0026amp;to=2026-03-11\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2026-02-24..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e7.5.4\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.3...e5d8418b706fcefd4208bb61c22399dd3123555b\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to JupyterLab v4.5.5 \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7842\"\u003e#7842\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PyO3 CI failure with Python 3.15 \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7836\"\u003e#7836\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/graphs/contributors?from=2026-01-26\u0026amp;to=2026-02-24\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2026-01-26..2026-02-24\u0026amp;type=Issues\"\u003eactivity\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/jupyter/notebook/commit/9a2c88fe646bac05b39dbe53e3e0ce95cafee016\"\u003e\u003ccode\u003e9a2c88f\u003c/code\u003e\u003c/a\u003e Publish 7.5.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/4f8438b0c67dc4f010bf8cd052da4f16e2ed3828\"\u003e\u003ccode\u003e4f8438b\u003c/code\u003e\u003c/a\u003e Update to JupyterLab v4.5.6 (\u003ca href=\"https://redirect.github.com/jupyter/notebook/issues/7861\"\u003e#7861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/f78fcfada85f9e4b46003bc1b831c83e6f4c30b3\"\u003e\u003ccode\u003ef78fcfa\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyter/notebook/issues/7857\"\u003e#7857\u003c/a\u003e: Fix check links (\u003ca href=\"https://redirect.github.com/jupyter/notebook/issues/7858\"\u003e#7858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/9e4cf2a44594e650e1ae3da49f81ae420135f32f\"\u003e\u003ccode\u003e9e4cf2a\u003c/code\u003e\u003c/a\u003e [7.5.x] Drop Python 3.9 on CI (\u003ca href=\"https://redirect.github.com/jupyter/notebook/issues/7860\"\u003e#7860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/ecc3aaf1bbf8f9cbec9c5d85df79db0f62b6d1e6\"\u003e\u003ccode\u003eecc3aaf\u003c/code\u003e\u003c/a\u003e Publish 7.5.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/e5d8418b706fcefd4208bb61c22399dd3123555b\"\u003e\u003ccode\u003ee5d8418\u003c/code\u003e\u003c/a\u003e Update to JupyterLab v4.5.5 (\u003ca href=\"https://redirect.github.com/jupyter/notebook/issues/7842\"\u003e#7842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/6fe4f8e01951f92dde768feda86569995c8c1006\"\u003e\u003ccode\u003e6fe4f8e\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyter/notebook/issues/7836\"\u003e#7836\u003c/a\u003e: Fix PyO3 CI failure with Python 3.15 (\u003ca href=\"https://redirect.github.com/jupyter/notebook/issues/7837\"\u003e#7837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jupyter/notebook/compare/@jupyter-notebook/tree@7.5.3...@jupyter-notebook/tree@7.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery-types` from 0.24.0 to 0.26.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sbdchd/celery-types/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-tqdm` from 4.67.3.20260205 to 4.67.3.20260303\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\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Climate-REF/climate-ref/pull/600","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Climate-REF%2Fclimate-ref/issues/600","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/600/packages"},{"uuid":"4086294345","node_id":"PR_kwDONe-0Ws7LHNfI","number":224,"state":"open","title":"build(deps-dev): bump mkdocs-gen-files from 0.6.0 to 0.6.1","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-17T05:26:37.000Z","updated_at":"2026-03-17T05:28:02.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"mkdocs-gen-files","old_version":"0.6.0","new_version":"0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"}],"path":null,"ecosystem":"pip"},"body":"Bumps [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) from 0.6.0 to 0.6.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mkdocs-gen-files\u0026package-manager=uv\u0026previous-version=0.6.0\u0026new-version=0.6.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Paul-B98/python-project-template/pull/224","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Paul-B98%2Fpython-project-template/issues/224","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/224/packages"},{"uuid":"3968222814","node_id":"PR_kwDOLYRIeM7FJib2","number":16,"state":"closed","title":"Bump the optional group with 15 updates","user":"dependabot[bot]","labels":["part:tooling"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-02-20T12:04:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-20T12:02:39.000Z","updated_at":"2026-02-20T12:04:44.000Z","time_to_close":123,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"optional","update_count":15,"packages":[{"name":"flake8","old_version":"7.0.0","new_version":"7.3.0","repository_url":"https://github.com/pycqa/flake8"},{"name":"flake8-pyproject","old_version":"1.2.3","new_version":"1.2.4","repository_url":"https://github.com/john-hen/Flake8-pyproject"},{"name":"pydoclint","old_version":"0.4.1","new_version":"0.8.3","repository_url":"https://github.com/jsh9/pydoclint"},{"name":"markdown","old_version":"3.6","new_version":"3.10.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mike","old_version":"2.1.1","new_version":"2.1.3","repository_url":"https://github.com/jimporter/mike"},{"name":"mkdocs-gen-files","old_version":"0.5.0","new_version":"0.6.0","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-literate-nav","old_version":"0.6.1","new_version":"0.6.2","repository_url":"https://github.com/oprypin/mkdocs-literate-nav"},{"name":"mkdocs-macros-plugin","old_version":"1.0.5","new_version":"1.5.0","repository_url":"https://github.com/fralau/mkdocs_macros_plugin"},{"name":"mkdocs-material","old_version":"9.5.25","new_version":"9.7.2","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"frequenz-repo-config","old_version":"0.9.2","new_version":"0.14.0"},{"name":"mypy","old_version":"1.10.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"types-markdown","old_version":"3.6.0.20240316","new_version":"3.10.2.20260211","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"frequenz-repo-config","old_version":"0.9.2","new_version":"0.14.0"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"async-solipsism","old_version":"0.6","new_version":"0.9","repository_url":"https://github.com/bmerry/async-solipsism"}],"path":null,"ecosystem":"pip"},"body":"Bumps the optional group with 15 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [flake8](https://github.com/pycqa/flake8) | `7.0.0` | `7.3.0` |\n| [flake8-pyproject](https://github.com/john-hen/Flake8-pyproject) | `1.2.3` | `1.2.4` |\n| [pydoclint](https://github.com/jsh9/pydoclint) | `0.4.1` | `0.8.3` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.6` | `3.10.2` |\n| [mike](https://github.com/jimporter/mike) | `2.1.1` | `2.1.3` |\n| [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) | `0.5.0` | `0.6.0` |\n| [mkdocs-literate-nav](https://github.com/oprypin/mkdocs-literate-nav) | `0.6.1` | `0.6.2` |\n| [mkdocs-macros-plugin](https://github.com/fralau/mkdocs_macros_plugin) | `1.0.5` | `1.5.0` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.5.25` | `9.7.2` |\n| [frequenz-repo-config[lib]](https://github.com/frequenz-floss/frequenz-repo-config-python) | `0.9.2` | `0.14.0` |\n| [mypy](https://github.com/python/mypy) | `1.10.0` | `1.19.1` |\n| [types-markdown](https://github.com/typeshed-internal/stub_uploader) | `3.6.0.20240316` | `3.10.2.20260211` |\n| [frequenz-repo-config[extra-lint-examples]](https://github.com/frequenz-floss/frequenz-repo-config-python) | `0.9.2` | `0.14.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [async-solipsism](https://github.com/bmerry/async-solipsism) | `0.6` | `0.9` |\n\nUpdates `flake8` from 7.0.0 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/c48217e1fc006c2dddd14df54e83b67da15de5cd\"\u003e\u003ccode\u003ec48217e\u003c/code\u003e\u003c/a\u003e Release 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/f9e0f33281d5bb892cae2c674ac398439d99c732\"\u003e\u003ccode\u003ef9e0f33\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1986\"\u003e#1986\u003c/a\u003e from PyCQA/document-f542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6bcdb628597fa2d03494965089ff87a492ffc1e9\"\u003e\u003ccode\u003e6bcdb62\u003c/code\u003e\u003c/a\u003e document F542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/70a15b8890d5bdf8c449ebb1b5259bd0140cc16b\"\u003e\u003ccode\u003e70a15b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1985\"\u003e#1985\u003c/a\u003e from PyCQA/upgrade-deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/4941a3e32e54488698ecbc23993bfeb2a60c0fc5\"\u003e\u003ccode\u003e4941a3e\u003c/code\u003e\u003c/a\u003e upgrade pyflakes / pycodestyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/23e4005c5501999c29e1e3774de7ed18d1e4e22d\"\u003e\u003ccode\u003e23e4005\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1983\"\u003e#1983\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/019424b80d3d7d5d8a2a1638f5877080546e3f46\"\u003e\u003ccode\u003e019424b\u003c/code\u003e\u003c/a\u003e add support for t-strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6b6f3d5fefecc994a06f425c18c3cddc9b71e4a4\"\u003e\u003ccode\u003e6b6f3d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1980\"\u003e#1980\u003c/a\u003e from PyCQA/asottile-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/8dfa6695b4fb1e1401b357367a0a71037d29f6aa\"\u003e\u003ccode\u003e8dfa669\u003c/code\u003e\u003c/a\u003e add rtd sphinx config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/ce3411118382d9332feb2749c8f417d10bfa2584\"\u003e\u003ccode\u003ece34111\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1976\"\u003e#1976\u003c/a\u003e from PyCQA/document-f824\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pycqa/flake8/compare/7.0.0...7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8-pyproject` from 1.2.3 to 1.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/john-hen/Flake8-pyproject/releases\"\u003eflake8-pyproject's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixes typo in name of meta variable in \u003ccode\u003e--toml-config\u003c/code\u003e help message. (\u003ca href=\"https://redirect.github.com/john-hen/Flake8-pyproject/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRegisters GitHub repo as trusted publisher for PyPI releases. (\u003ca href=\"https://redirect.github.com/john-hen/Flake8-pyproject/issues/38\"\u003e#38\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/john-hen/Flake8-pyproject/commit/3c516a9319beee324f9a200dfb4e08677de4a63f\"\u003e\u003ccode\u003e3c516a9\u003c/code\u003e\u003c/a\u003e Bumped version to 1.2.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/df70f19558f784eb0cb7988440735d56f53f3cae\"\u003e\u003ccode\u003edf70f19\u003c/code\u003e\u003c/a\u003e Added GitHub workflow for releases on PyPI.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/d46e99c695149cd860a918c354de0d1d89166b7e\"\u003e\u003ccode\u003ed46e99c\u003c/code\u003e\u003c/a\u003e Only run scheduled test weekly instead of nightly.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/da0b9ed7d586490aff8503e38f2d481c1706bdee\"\u003e\u003ccode\u003eda0b9ed\u003c/code\u003e\u003c/a\u003e Added link to GitHub releases as a project URL.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/8e4b87fbe7291687f41b11180c8b3ae486ac538e\"\u003e\u003ccode\u003e8e4b87f\u003c/code\u003e\u003c/a\u003e Cosmetic changes to code format of dev tools in \u003ccode\u003etools\u003c/code\u003e folder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/4227bd4a987b66a9ab46f0b4e04b098e388598e7\"\u003e\u003ccode\u003e4227bd4\u003c/code\u003e\u003c/a\u003e Use longer names for dev tools in \u003ccode\u003etools\u003c/code\u003e folder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/3866f48fbcd63231622f54e848268273605be1a8\"\u003e\u003ccode\u003e3866f48\u003c/code\u003e\u003c/a\u003e Mention early on that we need to be called in \u003ccode\u003epyproject.toml\u003c/code\u003e folder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/40bf63915dabd85a53a7d06c24232a3b278c4b25\"\u003e\u003ccode\u003e40bf639\u003c/code\u003e\u003c/a\u003e Removed configuration and documentation of pre-commit hook.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/9df7abb5a4b1b25f032c7d3f06fd3f074424c471\"\u003e\u003ccode\u003e9df7abb\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/2c230622c7e81e3f2f6cd632272c92fd6bdda83b\"\u003e\u003ccode\u003e2c23062\u003c/code\u003e\u003c/a\u003e Fixed reporting of code coverage.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/john-hen/Flake8-pyproject/compare/1.2.3...1.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydoclint` from 0.4.1 to 0.8.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jsh9/pydoclint/releases\"\u003epydoclint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.8.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix baseline renegeration bug by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/275\"\u003ejsh9/pydoclint#275\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd config option to allow omitting stars in varargs by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/276\"\u003ejsh9/pydoclint#276\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/277\"\u003ejsh9/pydoclint#277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.2...0.8.3\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.2...0.8.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.8.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ability to partially match violation codes by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/272\"\u003ejsh9/pydoclint#272\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix how multiple \u003cstrong\u003einit\u003c/strong\u003e() are recognized by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/273\"\u003ejsh9/pydoclint#273\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.1...0.8.2\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.1...0.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.8.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChange logic to detect docstring style mismatch by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/271\"\u003ejsh9/pydoclint#271\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.0...0.8.1\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.0...0.8.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.8.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd inline violation suppression for native mode by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/270\"\u003ejsh9/pydoclint#270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.6...0.8.0\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.6...0.8.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.7.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefresh linters \u0026amp; formatters by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/269\"\u003ejsh9/pydoclint#269\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.5...0.7.6\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.5...0.7.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.7.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e@property\u003c/code\u003e + \u003ccode\u003e@abstractmethod\u003c/code\u003e without a Returns: section by \u003ca href=\"https://github.com/barometz\"\u003e\u003ccode\u003e@​barometz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/261\"\u003ejsh9/pydoclint#261\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/barometz\"\u003e\u003ccode\u003e@​barometz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/261\"\u003ejsh9/pydoclint#261\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.4...0.7.5\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.4...0.7.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.7.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jsh9/pydoclint/blob/main/CHANGELOG.md\"\u003epydoclint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.8.3] - 2025-11-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eA new config option \u003ccode\u003e--omit-stars-when-documenting-varargs\u003c/code\u003e (shortform:\n\u003ccode\u003e-oswdv\u003c/code\u003e) so docstrings may describe varargs without the leading \u003ccode\u003e*\u003c/code\u003e\ncharacters (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/268\"\u003ejsh9/pydoclint#268\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFixed\n\u003cul\u003e\n\u003cli\u003eA bug where \u003ccode\u003e--auto-regenerate-baseline\u003c/code\u003e removes entries of files that have\nnot yet been fixed (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/274\"\u003ejsh9/pydoclint#274\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.2...0.8.3\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.2...0.8.3\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.8.2] - 2025-11-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eAbility to partially match violation codes in inline \u003ccode\u003enoqa\u003c/code\u003e in the native\nmode (which \u003cem\u003eflake8\u003c/em\u003e already supports)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFixed\n\u003cul\u003e\n\u003cli\u003eA bug: when there are more than one \u003ccode\u003e__init__()\u003c/code\u003e in a class (overloaded),\nthe first \u003ccode\u003e__init__()\u003c/code\u003e is incorrectly recognized as the \u0026quot;right\u0026quot; one. (The\nlast \u003ccode\u003e__init__()\u003c/code\u003e should be considered the right one.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.1...0.8.2\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.1...0.8.2\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.8.1] - 2025-11-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged\n\u003cul\u003e\n\u003cli\u003eThe logic to detect docstring style mismatches, fixing a false positive\ncase where non-Sphinx style docstrings are detected as Sphinx style\n(because there are some rST keywords in them)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.0...0.8.1\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.0...0.8.1\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.8.0] - 2025-11-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eNew functionality: \u003cem\u003epydoclint\u003c/em\u003e native mode can parse \u0026quot;noqa\u0026quot; comments and\nthus users can suppress violations in the native mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.6...0.8.0\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.6...0.8.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.7.6] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged\n\u003cul\u003e\n\u003cli\u003eUpdated linter and auto-formatter configurations\u003c/li\u003e\n\u003cli\u003eMade a lot of changes to fix code style; some logic was also updated per\nthe suggestions of linters\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.5...0.7.6\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.5...0.7.6\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/98bb10c4e73a050e31471409df8edfaeb88befb8\"\u003e\u003ccode\u003e98bb10c\u003c/code\u003e\u003c/a\u003e Add config option to allow omitting stars in varargs (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/277\"\u003e#277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/c37407d03df27b4c37b31e697fd474377c3c4efc\"\u003e\u003ccode\u003ec37407d\u003c/code\u003e\u003c/a\u003e Fix baseline renegeration bug (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/276\"\u003e#276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/3386cd2ad39784792a0d39d942dd4b26960c2a27\"\u003e\u003ccode\u003e3386cd2\u003c/code\u003e\u003c/a\u003e Fix baseline renegeration bug (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/275\"\u003e#275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/8c1081806da276917ac686a12f0c435414955da0\"\u003e\u003ccode\u003e8c10818\u003c/code\u003e\u003c/a\u003e Fix how multiple \u003cstrong\u003einit\u003c/strong\u003e() are recognized (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/273\"\u003e#273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/51435e3714765f9d4b220c868ab185670f3bb14b\"\u003e\u003ccode\u003e51435e3\u003c/code\u003e\u003c/a\u003e Add ability to partially match violation codes (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/e361239034992fbceac83994e47a40a5e7ecf3ea\"\u003e\u003ccode\u003ee361239\u003c/code\u003e\u003c/a\u003e Change logic to detect docstring style mismatch (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/271\"\u003e#271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/bf4c4021dccf832777452e05e94f98a36c59636b\"\u003e\u003ccode\u003ebf4c402\u003c/code\u003e\u003c/a\u003e Add hyperlink\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/a7585273e2b3c8e84a1883d33a168519947c807f\"\u003e\u003ccode\u003ea758527\u003c/code\u003e\u003c/a\u003e Update --check-style-mismatch explanations in config_options.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/e8ffd8988fe57ce4dc8a0625c3281b24ca396240\"\u003e\u003ccode\u003ee8ffd89\u003c/code\u003e\u003c/a\u003e Add inline violation suppression for native mode (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/270\"\u003e#270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/0a9ad0c159fe5ced98dbbcd3b850a8850ed009b7\"\u003e\u003ccode\u003e0a9ad0c\u003c/code\u003e\u003c/a\u003e Refresh linters \u0026amp; formatters (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.4.1...0.8.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markdown` from 3.6 to 3.10.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a regression related to comment handling (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1590\"\u003e#1590\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMore reliable fix for \u003ccode\u003e\u0026lt;/\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1593\"\u003e#1593\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.10.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.9.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.10.2] - 2026-02-09\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a regression related to comment handling (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1590\"\u003e#1590\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMore reliable fix for \u003ccode\u003e\u0026lt;/\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1593\"\u003e#1593\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.1] - 2026-01-21\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/e7a0efb3a7c36d6b8005403122705662bc17c904\"\u003e\u003ccode\u003ee7a0efb\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/630183336bda57c258becc3ed229105481876a7e\"\u003e\u003ccode\u003e6301833\u003c/code\u003e\u003c/a\u003e Document HTML sanitation policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/7f29f1a69d236f5bb11645c2fa03fcf701487c8c\"\u003e\u003ccode\u003e7f29f1a\u003c/code\u003e\u003c/a\u003e More reliable fix for \u003ccode\u003e\u0026lt;/\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c4386475a6b6daea43b7d7717add4271adc9a3c1\"\u003e\u003ccode\u003ec438647\u003c/code\u003e\u003c/a\u003e Fix regression of special comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/e5fa5b86e8ec380cbc520cfc637d72c779e5c601\"\u003e\u003ccode\u003ee5fa5b8\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/f9253495f5d9919f2fdd5e147832b5fc21330f65\"\u003e\u003ccode\u003ef925349\u003c/code\u003e\u003c/a\u003e More HTML fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/9933a0a4699f3dea91f46528a2bf54863f531c08\"\u003e\u003ccode\u003e9933a0a\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Allow reference links with backticks\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/07dfa4eb43f7a2ab3181b4f842a960a03a6c1221\"\u003e\u003ccode\u003e07dfa4e\u003c/code\u003e\u003c/a\u003e Allow reference links with backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/fb6b27a6ff90980b5bcb0cd51528a7c9dc3a93ca\"\u003e\u003ccode\u003efb6b27a\u003c/code\u003e\u003c/a\u003e Fix infinite loop when text contains multiple unclosed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/89112c293f7b399ae8808f3a06306f46601e9684\"\u003e\u003ccode\u003e89112c2\u003c/code\u003e\u003c/a\u003e Make the docs build successfully with mkdocstrings-python 2.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.6...3.10.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mike` from 2.1.1 to 2.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jimporter/mike/releases\"\u003emike's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.3\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWhen deploying using a deploy prefix, only delete stale versions of the docs within that prefix\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.1.2\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove ambiguity of some Git commands so that file and branch names don't collide\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/jimporter/mike/blob/master/CHANGES.md\"\u003emike's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.3 (2024-08-12)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWhen deploying using a deploy prefix, only delete stale versions of the docs\nwithin that prefix\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003ev2.1.2 (2024-06-23)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove ambiguity of some Git commands so that file and branch names don't\ncollide\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/c4e96085f86e6930e9669e12d81941eff7c3de1d\"\u003e\u003ccode\u003ec4e9608\u003c/code\u003e\u003c/a\u003e Update version to 2.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/3b19e27e9041cca20131f97419a9d7d88f85cf37\"\u003e\u003ccode\u003e3b19e27\u003c/code\u003e\u003c/a\u003e Announce the previous change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/dd9826a855965b0ce6bd06d290665f43ce9dabab\"\u003e\u003ccode\u003edd9826a\u003c/code\u003e\u003c/a\u003e Consult deploy prefix when deleting files during deploy; resolves \u003ca href=\"https://redirect.github.com/jimporter/mike/issues/227\"\u003e#227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/91cf5ee70da446a80bbc6108513581d0d6858ecf\"\u003e\u003ccode\u003e91cf5ee\u003c/code\u003e\u003c/a\u003e Properly escape parameters in regex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/90cf1314af3452003eaf40c9f97853efd2ee4e86\"\u003e\u003ccode\u003e90cf131\u003c/code\u003e\u003c/a\u003e Update version to 2.2.0.dev0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/62aaeafe60927b0653b319585cbe4a1a1eb1bc23\"\u003e\u003ccode\u003e62aaeaf\u003c/code\u003e\u003c/a\u003e Update version to 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/3f7d756e26fca03660e6f08927c7cd911e933c78\"\u003e\u003ccode\u003e3f7d756\u003c/code\u003e\u003c/a\u003e Use \u0026quot;--\u0026quot; to disambiguate Git arguments in a few more places; resolves \u003ca href=\"https://redirect.github.com/jimporter/mike/issues/218\"\u003e#218\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/5e6970d65beaf2c92fa1d22dbf524a931a393e8b\"\u003e\u003ccode\u003e5e6970d\u003c/code\u003e\u003c/a\u003e Belatedly update copyright year\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/9291efbd6961d652c16c000dc1fe4f2f1e19f94c\"\u003e\u003ccode\u003e9291efb\u003c/code\u003e\u003c/a\u003e Update version to 2.2.0.dev0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jimporter/mike/compare/v2.1.1...v2.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.5.0 to 0.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompatibility with MkDocs 1.6 is improved - generated files don't have to have an \u003ccode\u003eabs_src_path\u003c/code\u003e - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThere was a bug: using \u003ccode\u003eedit_uri_template\u003c/code\u003e in MkDocs would prevent \u003ccode\u003eset_edit_path()\u003c/code\u003e from working.\nThis is now fixed - \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/37\"\u003e#37\u003c/a\u003e - thanks to \u003ca href=\"https://github.com/frankkusters\"\u003e\u003ccode\u003e@​frankkusters\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe MkDocs configuration file now can be \u003ccode\u003emkdocs.yaml\u003c/code\u003e, not only \u003ccode\u003emkdocs.yml\u003c/code\u003e. Thanks to \u003ca href=\"https://github.com/mgor\"\u003e\u003ccode\u003e@​mgor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/39\"\u003eoprypin/mkdocs-gen-files#39\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMkDocs 1.4.1 is now the lowest supported version -  \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.9 is now the lowest supported version.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ca href=\"https://oprypin.github.io/mkdocs-gen-files/extras.html#programmatically-generating-the-navigation\"\u003enav generator\u003c/a\u003e can support empty paths - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.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/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/1a822d9e0d376d8ecae95fb961144a5af4887ef1\"\u003e\u003ccode\u003e1a822d9\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003e\u003ccode\u003e7baa032\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/6fd0fe048ebf928763458d8dba1a476ca2196117\"\u003e\u003ccode\u003e6fd0fe0\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-literate-nav` from 0.6.1 to 0.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/releases\"\u003emkdocs-literate-nav's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/6cc020ab973468678fa4420434ce84ee53ea2208?w=1\"\u003eFix compatibility with MkDocs 1.6+\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire at least MkDocs 1.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther refactors, see \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.1...v0.6.2\"\u003ehttps://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.1...v0.6.2\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/oprypin/mkdocs-literate-nav/commit/7423f00fe2c26c879310f76631b8180cb2bb6ace\"\u003e\u003ccode\u003e7423f00\u003c/code\u003e\u003c/a\u003e v0.6.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/285344cc3e328c484deb5d932b722a252336e71b\"\u003e\u003ccode\u003e285344c\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/c39fba6d1d789fb7ab9ee31d75fc2ec5973797c0\"\u003e\u003ccode\u003ec39fba6\u003c/code\u003e\u003c/a\u003e Put more items into TYPE_CHECKING\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/889bcb240e2757f4a2a0efd3a0ef9d58db96427d\"\u003e\u003ccode\u003e889bcb2\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/12f9f79e8ce5d6ee2c934e7787d20d0f055e4c50\"\u003e\u003ccode\u003e12f9f79\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/57210ef5a0e855d7cf49be6e2136e9208493cc13\"\u003e\u003ccode\u003e57210ef\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/6cc020ab973468678fa4420434ce84ee53ea2208\"\u003e\u003ccode\u003e6cc020a\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/9c0564974487df94a62158028fd5e839f6779f68\"\u003e\u003ccode\u003e9c05649\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/07787d5ac634eca808742de2dfafad60f676d90c\"\u003e\u003ccode\u003e07787d5\u003c/code\u003e\u003c/a\u003e Refactor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/1a7b4d74d283cdabe0b625614cf00e299d678c3f\"\u003e\u003ccode\u003e1a7b4d7\u003c/code\u003e\u003c/a\u003e Refactor for type annotations\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.1...v0.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-macros-plugin` from 1.0.5 to 1.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fralau/mkdocs_macros_plugin/releases\"\u003emkdocs-macros-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev.1.3.7 With Test Framework\u003c/h2\u003e\n\u003ch2\u003e1.3.7, 2024-10-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: incompatibility with the d2 module (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/249\"\u003e#249\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.6, 2024-10-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: complete test framework, using pytest and Mkdocs-Test (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/244\"\u003e#244\u003c/a\u003e)\nA number of automated test cases are implemented.\u003c/li\u003e\n\u003cli\u003eChanged: move from setup.py to pyproject.toml (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.0, 2024-09-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: three hooks \u003ccode\u003eregister_variables/macros/filters\u003c/code\u003e to facilitate\ncooperation with other MkDocs plugins.\u003c/li\u003e\n\u003cli\u003eFixed: `define_env() was always required in module (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded: trace the case when no module is found (INFO)\u003c/li\u003e\n\u003cli\u003eImproved documentation, particularly about HTML pages\u003c/li\u003e\n\u003cli\u003eAdded: parameters \u003ccode\u003ej2_comment_start_string\u003c/code\u003e and\n\u003ccode\u003ej2_comment_end_string\u003c/code\u003e to plugin's parameters,\nto specify alternate markers for comments.\u003c/li\u003e\n\u003cli\u003eAdded the multiline parameter \u003ccode\u003eforce_render_paths\u003c/code\u003e in the config file,\nto specify directories or file patterns to be rendered for the case when \u003ccode\u003erender_by_default = false\u003c/code\u003e\n(the \u003ccode\u003erender_macros\u003c/code\u003e parameter in the YAML header of the page\nhas the last word).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.5, 2023-10-31\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: git.short_tag (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded: Mermaid diagrams in the documentation (Readthedocs)\u003c/li\u003e\n\u003cli\u003eFixed: Changelog was no longer displayed (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/186\"\u003e#186\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/fralau/mkdocs-macros-plugin/blob/master/CHANGELOG.md\"\u003emkdocs-macros-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.0, 2025-11-13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: For each push, testing on github for versions Python 3.8 to 3.12\u003c/li\u003e\n\u003cli\u003eFixed: bug in import of packages when not in source dir (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.1, 2025-10-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: support for j2_extensions paramater in config file (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed: missing dependency declaration on \u003ccode\u003erequests\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.0, 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: auto-install of missing pluglet (meaningful error message \u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed: error with yaml dumps (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/258\"\u003e#258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed: detection of Jinja2, to allow title rendering (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/266\"\u003e#266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSmall improvements to documentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.7, 2024-10-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: incompatibility with the d2 module (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/249\"\u003e#249\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.6, 2024-10-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: complete test framework, using pytest and Mkdocs-Test (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/244\"\u003e#244\u003c/a\u003e)\nA number of automated test cases are implemented.\u003c/li\u003e\n\u003cli\u003eChanged: move from setup.py to pyproject.toml (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.0, 2024-09-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: three hooks \u003ccode\u003eregister_variables/macros/filters\u003c/code\u003e to facilitate\ncooperation with other MkDocs plugins.\u003c/li\u003e\n\u003cli\u003eFixed: `define_env() was always required in module (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded: trace the case when no module is found (INFO)\u003c/li\u003e\n\u003cli\u003eImproved documentation, particularly about HTML pages\u003c/li\u003e\n\u003cli\u003eAdded: parameters \u003ccode\u003ej2_comment_start_string\u003c/code\u003e and\n\u003ccode\u003ej2_comment_end_string\u003c/code\u003e to plugin's parameters,\nto specify alternate markers for comments.\u003c/li\u003e\n\u003cli\u003eAdded the multiline parameter \u003ccode\u003eforce_render_paths\u003c/code\u003e in the config file,\nto specify directories or file patterns to be rendered for the case when \u003ccode\u003erender_by_default = false\u003c/code\u003e\n(the \u003ccode\u003erender_macros\u003c/code\u003e parameter in the YAML header of the page\nhas the last word).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/0536f4da1dc643e1fa1f0cc90e71512ada67dc04\"\u003e\u003ccode\u003e0536f4d\u003c/code\u003e\u003c/a\u003e Fix type hint for compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/d9a6bc3aac5b12b86f9e2be7af18e1e9178287f6\"\u003e\u003ccode\u003ed9a6bc3\u003c/code\u003e\u003c/a\u003e Require mkdocs-test\u0026gt;=0.6.0 (compatibility with Python 3.8 and 3.9)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/bcaa72db2820d60822ffba15e87c75669abc7b92\"\u003e\u003ccode\u003ebcaa72d\u003c/code\u003e\u003c/a\u003e Make last minute corrections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/356fc2a5b55d1897a2f2c47856d52b10cff4611c\"\u003e\u003ccode\u003e356fc2a\u003c/code\u003e\u003c/a\u003e Prepare for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/aaf16bdcb9dfcb9c6ea9b6567ea4af7f8c178185\"\u003e\u003ccode\u003eaaf16bd\u003c/code\u003e\u003c/a\u003e Limit testing to 3.10 up (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/ba5356c0c263355556aa82dad0fbfde3cce4bc4d\"\u003e\u003ccode\u003eba5356c\u003c/code\u003e\u003c/a\u003e Use proper exit for pytest if Python \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/6c796600bc0886696ce9b76b84354d7e2bc1b6fa\"\u003e\u003ccode\u003e6c79660\u003c/code\u003e\u003c/a\u003e Skip test_modules.py if Python version \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cec7440d46589b303d741a5e2df0a240c25b9bdb\"\u003e\u003ccode\u003ecec7440\u003c/code\u003e\u003c/a\u003e Test installation of d2 in a cross-platform way (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/492759c5ab3d05f7c55ec62ffdf9573b715ac6ed\"\u003e\u003ccode\u003e492759c\u003c/code\u003e\u003c/a\u003e Update with changes from local repo (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cc5416834a07ffd2ba1fe3d917a701ac6e9c98ad\"\u003e\u003ccode\u003ecc54168\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:fralau/mkdocs_macros_plugin\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fralau/mkdocs_macros_plugin/compare/v1.0.5...v1.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.5.25 to 9.7.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.2\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to \u003ccode\u003emkdocs build\u003c/code\u003e about impending MkDocs 2.0 incompatibility (doesn't affect strict mode)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.1\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is now in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features. Going forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the Insiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNote on deprecated plugins\u003c/strong\u003e: The [projects] and [typeset] plugins are included in this release, but must be considered deprecated. Both plugins proved unsustainable to maintain and represent architectural dead ends. They are provided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eChanges\u003c/strong\u003e:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.2 (2026-02-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to 'mkdocs build' about impending MkDocs 2.0 incompatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pinned blog posts and author profiles\u003c/li\u003e\n\u003cli\u003eAdded support for customizing pagination for blog index pages\u003c/li\u003e\n\u003cli\u003eAdded support for customizing blog category sort order\u003c/li\u003e\n\u003cli\u003eAdded support for staying on page when switching languages\u003c/li\u003e\n\u003cli\u003eAdded support for disabling tags in table of contents\u003c/li\u003e\n\u003cli\u003eAdded support for nested tags and shadow tags\u003c/li\u003e\n\u003cli\u003eAdded support for footnote tooltips\u003c/li\u003e\n\u003cli\u003eAdded support for instant previews\u003c/li\u003e\n\u003cli\u003eAdded support for instant prefetching\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card layouts\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card background images\u003c/li\u003e\n\u003cli\u003eAdded support for selectable rangs in code blocks\u003c/li\u003e\n\u003cli\u003eAdded support for custom selectors for code annotations\u003c/li\u003e\n\u003cli\u003eAdded support for configurable log level in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for processing of external links in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for automatic image optimization via optimize plugin\u003c/li\u003e\n\u003cli\u003eAdded support for navigation paths (breadcrumbs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/e21a119e38f7bca184e469eaeefa3d5535e5022b\"\u003e\u003ccode\u003ee21a119\u003c/code\u003e\u003c/a\u003e Updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/d5654b500a7021625d3c78f59842805c45e7b65a\"\u003e\u003ccode\u003ed5654b5\u003c/code\u003e\u003c/a\u003e Prepare 9.7.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/b18af2f74a98e0d54f7f11b4e029d7ea29166df3\"\u003e\u003ccode\u003eb18af2f\u003c/code\u003e\u003c/a\u003e Opened up version ranges in optional dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/39cdfbd87c80079cd06a6d2a953cd53f531db61d\"\u003e\u003ccode\u003e39cdfbd\u003c/code\u003e\u003c/a\u003e Added social card for blog post\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/09ee7b1913eab1988ff3a81982c39634915336e1\"\u003e\u003ccode\u003e09ee7b1\u003c/code\u003e\u003c/a\u003e Added blog post on MkDocs 2.0 (\u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8564\"\u003e#8564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/0d11a2d01174a0ab3bec97300c4432da44128253\"\u003e\u003ccode\u003e0d11a2d\u003c/code\u003e\u003c/a\u003e Documentation (\u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8560\"\u003e#8560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/8fc61b5cb00845825179d6fd3e331c789f83187b\"\u003e\u003ccode\u003e8fc61b5\u003c/code\u003e\u003c/a\u003e Updated dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/3f0eaca8da7e06db5bbb8ca41febb78459baf650\"\u003e\u003ccode\u003e3f0eaca\u003c/code\u003e\u003c/a\u003e Documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/eaba2dc24f196ecbf8e9aa87f8982be4e154920b\"\u003e\u003ccode\u003eeaba2dc\u003c/code\u003e\u003c/a\u003e Re-enable publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/7e236f6866b73aa080cd4d209752f6440bf67440\"\u003e\u003ccode\u003e7e236f6\u003c/code\u003e\u003c/a\u003e Temporarily disable publishing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.5.25...9.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `frequenz-repo-config[lib]` from 0.9.2 to 0.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/releases\"\u003efrequenz-repo-config[lib]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.0\u003c/h2\u003e\n\u003ch1\u003eFrequenz Repository Configuration Release Notes\u003c/h1\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis release adds a new workflow for Dependabot auto-merge and updates mkdocstrings to v2.\u003c/p\u003e\n\u003ch2\u003eUpgrading\u003c/h2\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cp\u003eAll upgrading should be done via the migration script or regenerating the templates.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecurl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.14.0/cookiecutter/migrate.py | python3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eBut you might still need to adapt your code, just have a look at the script output for further instructions.\u003c/p\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emkdocsstrings-python\u003c/code\u003e v2 is now supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDependencies have been updated.\u003c/li\u003e\n\u003cli\u003eNew warning ignores for protobuf gencode versions in pytest.\u003c/li\u003e\n\u003cli\u003eAdded Dependabot auto-merge workflow using \u003ccode\u003efrequenz-floss/dependabot-auto-approve\u003c/code\u003e action.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emkdocstrings: Move \u003ccode\u003epaths\u003c/code\u003e key to the right section in \u003ccode\u003emkdocs.yml\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix invalid YAML syntax in Dependabot workflow template.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump types-pyyaml from 6.0.12.20250402 to 6.0.12.20250516 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/410\"\u003efrequenz-floss/frequenz-repo-config-python#410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the patch group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/408\"\u003efrequenz-floss/frequenz-repo-config-python#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the minor group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/409\"\u003efrequenz-floss/frequenz-repo-config-python#409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove filtering of warnings in pytest by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/411\"\u003efrequenz-floss/frequenz-repo-config-python#411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix mkdocsstrings config by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/412\"\u003efrequenz-floss/frequenz-repo-config-python#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge v0.13.x into v0.x.x by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/420\"\u003efrequenz-floss/frequenz-repo-config-python#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the patch group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/424\"\u003efrequenz-floss/frequenz-repo-config-python#424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the minor group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/423\"\u003efrequenz-floss/frequenz-repo-config-python#423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate templates dependencies by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/431\"\u003efrequenz-floss/frequenz-repo-config-python#431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump types-markdown from 3.8.0.20250415 to 3.8.0.20250708 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/430\"\u003efrequenz-floss/frequenz-repo-config-python#430\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mypy from 1.16.1 to 1.17.1 in the minor group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/428\"\u003efrequenz-floss/frequenz-repo-config-python#428\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the mkdocstrings group across 1 directory with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/432\"\u003efrequenz-floss/frequenz-repo-config-python#432\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/frequenz-floss/frequenz-repo-config-python/blob/v0.x.x/RELEASE_NOTES.md\"\u003efrequenz-repo-config[lib]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFrequenz Repository Configuration Release Notes\u003c/h1\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis release migrates lightweight GitHub Actions workflow jobs to use the new cost-effective \u003ccode\u003eubuntu-slim\u003c/code\u003e runner.\nIt also updates cookiecutter pyproject license metadata to SPDX expressions to avoid setuptools deprecation warnings.\nThe auto-dependabot workflow now uses a GitHub App installation token instead of \u003ccode\u003eGITHUB_TOKEN\u003c/code\u003e to fix merge queue and auto-merge failures.\u003c/p\u003e\n\u003ch2\u003eUpgrading\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cp\u003eAll upgrading should be done via the migration script or regenerating the templates.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecurl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.14.0/cookiecutter/migrate.py | python3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eBut you might still need to adapt your code:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMigrated lightweight workflow jobs to use the new \u003ccode\u003eubuntu-slim\u003c/code\u003e runner for cost savings.\nThe following jobs now use \u003ccode\u003eubuntu-slim\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eci.yaml\u003c/code\u003e: \u003ccode\u003eprotolint\u003c/code\u003e, \u003ccode\u003enox-all\u003c/code\u003e, \u003ccode\u003etest-installation-all\u003c/code\u003e, \u003ccode\u003ecreate-github-release\u003c/code\u003e, \u003ccode\u003epublish-to-pypi\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eci-pr.yaml\u003c/code\u003e: \u003ccode\u003eprotolint\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eauto-dependabot.yaml\u003c/code\u003e: \u003ccode\u003eauto-merge\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erelease-notes-check.yml\u003c/code\u003e: \u003ccode\u003echeck-release-notes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edco-merge-queue.yml\u003c/code\u003e: \u003ccode\u003eDCO\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elabeler.yml\u003c/code\u003e: \u003ccode\u003eLabel\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ca href=\"https://github.com/pjknkda/flake8-datetimez\"\u003e\u003ccode\u003eflake8-datetimez\u003c/code\u003e\u003c/a\u003e plugin to the \u003ccode\u003eflake8\u003c/code\u003e session. This plugin prevents accidental use of naive \u003ccode\u003edatetime\u003c/code\u003e objects by flagging calls that create or return datetimes without timezone information.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe CI workflow now uses a simpler matrix.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched \u003ccode\u003eproject.license\u003c/code\u003e to SPDX expressions and added \u003ccode\u003eproject.license-files\u003c/code\u003e. This removes deprecated setuptools license metadata and avoids build warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/a72bd53788be72e52e392ba037d1846e9af9bdb0\"\u003e\u003ccode\u003ea72bd53\u003c/code\u003e\u003c/a\u003e Update mypy-protobuf requirement from \u0026lt;4,\u0026gt;=3.0.0 to \u0026gt;=3.0.0,\u0026lt;5 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/489\"\u003e#489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/10341d61167efc0469c829a7e5159f4fb98db43b\"\u003e\u003ccode\u003e10341d6\u003c/code\u003e\u003c/a\u003e template: Bump protobuf and grpcio to latest versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/af4476785f83336c08114d344820f3c5e47819fa\"\u003e\u003ccode\u003eaf44767\u003c/code\u003e\u003c/a\u003e Update mypy-protobuf requirement from \u0026lt;4,\u0026gt;=3.0.0 to \u0026gt;=3.0.0,\u0026lt;5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/8a4e067b5d713b7667fa0e2fb00328de43bf2355\"\u003e\u003ccode\u003e8a4e067\u003c/code\u003e\u003c/a\u003e Prepare for release v0.14.0 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/490\"\u003e#490\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/73dc4ef502a49f798a6ad672edd6b6b5478851ec\"\u003e\u003ccode\u003e73dc4ef\u003c/code\u003e\u003c/a\u003e Prepare for release v0.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/3d86e084ef981c8f5c8b7256918866bd22bbc069\"\u003e\u003ccode\u003e3d86e08\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/5894e50f24b3fcd742d8d44d2c370ad9a43d734f\"\u003e\u003ccode\u003e5894e50\u003c/code\u003e\u003c/a\u003e Bump pydoclint from 0.7.3 to 0.8.3 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/4a81cbbb8281d46e23c58112bdd202ace0861c85\"\u003e\u003ccode\u003e4a81cbb\u003c/code\u003e\u003c/a\u003e Bump frequenz-floss/gh-action-nox from 1.0.1 to 1.1.0 in the compatible group...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/41b3a2cb1a54c14ca1a4bc1bb983b17bee5580b1\"\u003e\u003ccode\u003e41b3a2c\u003c/code\u003e\u003c/a\u003e Bump pytest from 9.0.1 to 9.0.2 in the patch group (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/487\"\u003e#487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/c2bbc77892b57010335680effe03cb368dc54b75\"\u003e\u003ccode\u003ec2bbc77\u003c/code\u003e\u003c/a\u003e Bump the minor group with 7 updates (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/compare/v0.9.2...v0.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.10.0 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.10.0...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-markdown` from 3.6.0.20240316 to 3.10.2.20260211\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 `frequenz-repo-config[extra-lint-examples]` from 0.9.2 to 0.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/releases\"\u003efrequenz-repo-config[extra-lint-examples]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.0\u003c/h2\u003e\n\u003ch1\u003eFrequenz Repository Configuration Release Notes\u003c/h1\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis release adds a new workflow for Dependabot auto-merge and updates mkdocstrings to v2.\u003c/p\u003e\n\u003ch2\u003eUpgrading\u003c/h2\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cp\u003eAll upgrading should be done via the migration script or regenerating the templates.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecurl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.14.0/cookiecutter/migrate.py | python3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eBut you might still need to adapt your code, just have a look at the script output for further instructions.\u003c/p\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emkdocsstrings-python\u003c/code\u003e v2 is now supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDependencies have been updated.\u003c/li\u003e\n\u003cli\u003eNew warning ignores for protobuf gencode versions in pytest.\u003c/li\u003e\n\u003cli\u003eAdded Dependabot auto-merge workflow using \u003ccode\u003efrequenz-floss/dependabot-auto-approve\u003c/code\u003e action.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emkdocstrings: Move \u003ccode\u003epaths\u003c/code\u003e key to the right section in \u003ccode\u003emkdocs.yml\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix invalid YAML syntax in Dependabot workflow template.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump types-pyyaml from 6.0.12.20250402 to 6.0.12.20250516 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"h...\n\n_Description has been truncated_","html_url":"https://github.com/llucax/frequenz-client-microgrid-python/pull/16","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/llucax%2Ffrequenz-client-microgrid-python/issues/16","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/16/packages"},{"uuid":"3934995507","node_id":"PR_kwDOEPOwMs7Dcf_f","number":1541,"state":"closed","title":"build(deps-dev): bump mkdocs-gen-files from 0.5.0 to 0.6.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-13T02:32:20.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-13T02:23:17.000Z","updated_at":"2026-02-13T02:33:36.000Z","time_to_close":543,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"mkdocs-gen-files","old_version":"0.5.0","new_version":"0.6.0","repository_url":"https://github.com/oprypin/mkdocs-gen-files"}],"path":null,"ecosystem":"pip"},"body":"Bumps [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) from 0.5.0 to 0.6.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompatibility with MkDocs 1.6 is improved - generated files don't have to have an \u003ccode\u003eabs_src_path\u003c/code\u003e - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThere was a bug: using \u003ccode\u003eedit_uri_template\u003c/code\u003e in MkDocs would prevent \u003ccode\u003eset_edit_path()\u003c/code\u003e from working.\nThis is now fixed - \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/37\"\u003e#37\u003c/a\u003e - thanks to \u003ca href=\"https://github.com/frankkusters\"\u003e\u003ccode\u003e@​frankkusters\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe MkDocs configuration file now can be \u003ccode\u003emkdocs.yaml\u003c/code\u003e, not only \u003ccode\u003emkdocs.yml\u003c/code\u003e. Thanks to \u003ca href=\"https://github.com/mgor\"\u003e\u003ccode\u003e@​mgor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/39\"\u003eoprypin/mkdocs-gen-files#39\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMkDocs 1.4.1 is now the lowest supported version -  \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.9 is now the lowest supported version.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ca href=\"https://oprypin.github.io/mkdocs-gen-files/extras.html#programmatically-generating-the-navigation\"\u003enav generator\u003c/a\u003e can support empty paths - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.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/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/1a822d9e0d376d8ecae95fb961144a5af4887ef1\"\u003e\u003ccode\u003e1a822d9\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003e\u003ccode\u003e7baa032\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/6fd0fe048ebf928763458d8dba1a476ca2196117\"\u003e\u003ccode\u003e6fd0fe0\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mkdocs-gen-files\u0026package-manager=pip\u0026previous-version=0.5.0\u0026new-version=0.6.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/collerek/ormar/pull/1541","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/collerek%2Formar/issues/1541","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1541/packages"},{"uuid":"3921745888","node_id":"PR_kwDOOdxeKs7CwbeO","number":6,"state":"open","title":"Bump the optional group with 14 updates","user":"dependabot[bot]","labels":["part:tooling"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-10T14:21:32.000Z","updated_at":"2026-02-10T14:21:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"optional","update_count":14,"packages":[{"name":"flake8","old_version":"7.1.1","new_version":"7.3.0","repository_url":"https://github.com/pycqa/flake8"},{"name":"flake8-pyproject","old_version":"1.2.3","new_version":"1.2.4","repository_url":"https://github.com/john-hen/Flake8-pyproject"},{"name":"pydoclint","old_version":"0.6.0","new_version":"0.8.3","repository_url":"https://github.com/jsh9/pydoclint"},{"name":"markdown","old_version":"3.7","new_version":"3.10.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-gen-files","old_version":"0.5.0","new_version":"0.6.0","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-literate-nav","old_version":"0.6.1","new_version":"0.6.2","repository_url":"https://github.com/oprypin/mkdocs-literate-nav"},{"name":"mkdocs-macros-plugin","old_version":"1.3.7","new_version":"1.5.0","repository_url":"https://github.com/fralau/mkdocs_macros_plugin"},{"name":"mkdocs-material","old_version":"9.6.2","new_version":"9.7.1","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"frequenz-repo-config","old_version":"0.12.3","new_version":"0.14.0"},{"name":"mypy","old_version":"1.9.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"types-markdown","old_version":"3.7.0.20241204","new_version":"3.10.0.20251106","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"frequenz-repo-config","old_version":"0.12.3","new_version":"0.14.0"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"async-solipsism","old_version":"0.7","new_version":"0.9","repository_url":"https://github.com/bmerry/async-solipsism"}],"path":null,"ecosystem":"pip"},"body":"Bumps the optional group with 14 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [flake8](https://github.com/pycqa/flake8) | `7.1.1` | `7.3.0` |\n| [flake8-pyproject](https://github.com/john-hen/Flake8-pyproject) | `1.2.3` | `1.2.4` |\n| [pydoclint](https://github.com/jsh9/pydoclint) | `0.6.0` | `0.8.3` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.7` | `3.10.2` |\n| [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) | `0.5.0` | `0.6.0` |\n| [mkdocs-literate-nav](https://github.com/oprypin/mkdocs-literate-nav) | `0.6.1` | `0.6.2` |\n| [mkdocs-macros-plugin](https://github.com/fralau/mkdocs_macros_plugin) | `1.3.7` | `1.5.0` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.2` | `9.7.1` |\n| [frequenz-repo-config[lib]](https://github.com/frequenz-floss/frequenz-repo-config-python) | `0.12.3` | `0.14.0` |\n| [mypy](https://github.com/python/mypy) | `1.9.0` | `1.19.1` |\n| [types-markdown](https://github.com/typeshed-internal/stub_uploader) | `3.7.0.20241204` | `3.10.0.20251106` |\n| [frequenz-repo-config[extra-lint-examples]](https://github.com/frequenz-floss/frequenz-repo-config-python) | `0.12.3` | `0.14.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [async-solipsism](https://github.com/bmerry/async-solipsism) | `0.7` | `0.9` |\n\nUpdates `flake8` from 7.1.1 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/c48217e1fc006c2dddd14df54e83b67da15de5cd\"\u003e\u003ccode\u003ec48217e\u003c/code\u003e\u003c/a\u003e Release 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/f9e0f33281d5bb892cae2c674ac398439d99c732\"\u003e\u003ccode\u003ef9e0f33\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1986\"\u003e#1986\u003c/a\u003e from PyCQA/document-f542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6bcdb628597fa2d03494965089ff87a492ffc1e9\"\u003e\u003ccode\u003e6bcdb62\u003c/code\u003e\u003c/a\u003e document F542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/70a15b8890d5bdf8c449ebb1b5259bd0140cc16b\"\u003e\u003ccode\u003e70a15b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1985\"\u003e#1985\u003c/a\u003e from PyCQA/upgrade-deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/4941a3e32e54488698ecbc23993bfeb2a60c0fc5\"\u003e\u003ccode\u003e4941a3e\u003c/code\u003e\u003c/a\u003e upgrade pyflakes / pycodestyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/23e4005c5501999c29e1e3774de7ed18d1e4e22d\"\u003e\u003ccode\u003e23e4005\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1983\"\u003e#1983\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/019424b80d3d7d5d8a2a1638f5877080546e3f46\"\u003e\u003ccode\u003e019424b\u003c/code\u003e\u003c/a\u003e add support for t-strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6b6f3d5fefecc994a06f425c18c3cddc9b71e4a4\"\u003e\u003ccode\u003e6b6f3d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1980\"\u003e#1980\u003c/a\u003e from PyCQA/asottile-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/8dfa6695b4fb1e1401b357367a0a71037d29f6aa\"\u003e\u003ccode\u003e8dfa669\u003c/code\u003e\u003c/a\u003e add rtd sphinx config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/ce3411118382d9332feb2749c8f417d10bfa2584\"\u003e\u003ccode\u003ece34111\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1976\"\u003e#1976\u003c/a\u003e from PyCQA/document-f824\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pycqa/flake8/compare/7.1.1...7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8-pyproject` from 1.2.3 to 1.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/john-hen/Flake8-pyproject/releases\"\u003eflake8-pyproject's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixes typo in name of meta variable in \u003ccode\u003e--toml-config\u003c/code\u003e help message. (\u003ca href=\"https://redirect.github.com/john-hen/Flake8-pyproject/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRegisters GitHub repo as trusted publisher for PyPI releases. (\u003ca href=\"https://redirect.github.com/john-hen/Flake8-pyproject/issues/38\"\u003e#38\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/john-hen/Flake8-pyproject/commit/3c516a9319beee324f9a200dfb4e08677de4a63f\"\u003e\u003ccode\u003e3c516a9\u003c/code\u003e\u003c/a\u003e Bumped version to 1.2.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/df70f19558f784eb0cb7988440735d56f53f3cae\"\u003e\u003ccode\u003edf70f19\u003c/code\u003e\u003c/a\u003e Added GitHub workflow for releases on PyPI.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/d46e99c695149cd860a918c354de0d1d89166b7e\"\u003e\u003ccode\u003ed46e99c\u003c/code\u003e\u003c/a\u003e Only run scheduled test weekly instead of nightly.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/da0b9ed7d586490aff8503e38f2d481c1706bdee\"\u003e\u003ccode\u003eda0b9ed\u003c/code\u003e\u003c/a\u003e Added link to GitHub releases as a project URL.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/8e4b87fbe7291687f41b11180c8b3ae486ac538e\"\u003e\u003ccode\u003e8e4b87f\u003c/code\u003e\u003c/a\u003e Cosmetic changes to code format of dev tools in \u003ccode\u003etools\u003c/code\u003e folder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/4227bd4a987b66a9ab46f0b4e04b098e388598e7\"\u003e\u003ccode\u003e4227bd4\u003c/code\u003e\u003c/a\u003e Use longer names for dev tools in \u003ccode\u003etools\u003c/code\u003e folder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/3866f48fbcd63231622f54e848268273605be1a8\"\u003e\u003ccode\u003e3866f48\u003c/code\u003e\u003c/a\u003e Mention early on that we need to be called in \u003ccode\u003epyproject.toml\u003c/code\u003e folder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/40bf63915dabd85a53a7d06c24232a3b278c4b25\"\u003e\u003ccode\u003e40bf639\u003c/code\u003e\u003c/a\u003e Removed configuration and documentation of pre-commit hook.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/9df7abb5a4b1b25f032c7d3f06fd3f074424c471\"\u003e\u003ccode\u003e9df7abb\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/2c230622c7e81e3f2f6cd632272c92fd6bdda83b\"\u003e\u003ccode\u003e2c23062\u003c/code\u003e\u003c/a\u003e Fixed reporting of code coverage.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/john-hen/Flake8-pyproject/compare/1.2.3...1.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydoclint` from 0.6.0 to 0.8.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jsh9/pydoclint/releases\"\u003epydoclint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.8.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix baseline renegeration bug by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/275\"\u003ejsh9/pydoclint#275\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd config option to allow omitting stars in varargs by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/276\"\u003ejsh9/pydoclint#276\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/277\"\u003ejsh9/pydoclint#277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.2...0.8.3\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.2...0.8.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.8.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ability to partially match violation codes by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/272\"\u003ejsh9/pydoclint#272\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix how multiple \u003cstrong\u003einit\u003c/strong\u003e() are recognized by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/273\"\u003ejsh9/pydoclint#273\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.1...0.8.2\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.1...0.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.8.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChange logic to detect docstring style mismatch by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/271\"\u003ejsh9/pydoclint#271\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.0...0.8.1\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.0...0.8.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.8.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd inline violation suppression for native mode by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/270\"\u003ejsh9/pydoclint#270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.6...0.8.0\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.6...0.8.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.7.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefresh linters \u0026amp; formatters by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/269\"\u003ejsh9/pydoclint#269\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.5...0.7.6\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.5...0.7.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.7.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e@property\u003c/code\u003e + \u003ccode\u003e@abstractmethod\u003c/code\u003e without a Returns: section by \u003ca href=\"https://github.com/barometz\"\u003e\u003ccode\u003e@​barometz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/261\"\u003ejsh9/pydoclint#261\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/barometz\"\u003e\u003ccode\u003e@​barometz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/261\"\u003ejsh9/pydoclint#261\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.4...0.7.5\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.4...0.7.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.7.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jsh9/pydoclint/blob/main/CHANGELOG.md\"\u003epydoclint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.8.3] - 2025-11-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eA new config option \u003ccode\u003e--omit-stars-when-documenting-varargs\u003c/code\u003e (shortform:\n\u003ccode\u003e-oswdv\u003c/code\u003e) so docstrings may describe varargs without the leading \u003ccode\u003e*\u003c/code\u003e\ncharacters (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/268\"\u003ejsh9/pydoclint#268\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFixed\n\u003cul\u003e\n\u003cli\u003eA bug where \u003ccode\u003e--auto-regenerate-baseline\u003c/code\u003e removes entries of files that have\nnot yet been fixed (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/274\"\u003ejsh9/pydoclint#274\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.2...0.8.3\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.2...0.8.3\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.8.2] - 2025-11-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eAbility to partially match violation codes in inline \u003ccode\u003enoqa\u003c/code\u003e in the native\nmode (which \u003cem\u003eflake8\u003c/em\u003e already supports)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFixed\n\u003cul\u003e\n\u003cli\u003eA bug: when there are more than one \u003ccode\u003e__init__()\u003c/code\u003e in a class (overloaded),\nthe first \u003ccode\u003e__init__()\u003c/code\u003e is incorrectly recognized as the \u0026quot;right\u0026quot; one. (The\nlast \u003ccode\u003e__init__()\u003c/code\u003e should be considered the right one.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.1...0.8.2\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.1...0.8.2\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.8.1] - 2025-11-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged\n\u003cul\u003e\n\u003cli\u003eThe logic to detect docstring style mismatches, fixing a false positive\ncase where non-Sphinx style docstrings are detected as Sphinx style\n(because there are some rST keywords in them)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.0...0.8.1\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.0...0.8.1\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.8.0] - 2025-11-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eNew functionality: \u003cem\u003epydoclint\u003c/em\u003e native mode can parse \u0026quot;noqa\u0026quot; comments and\nthus users can suppress violations in the native mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.6...0.8.0\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.6...0.8.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.7.6] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged\n\u003cul\u003e\n\u003cli\u003eUpdated linter and auto-formatter configurations\u003c/li\u003e\n\u003cli\u003eMade a lot of changes to fix code style; some logic was also updated per\nthe suggestions of linters\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.5...0.7.6\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.5...0.7.6\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/98bb10c4e73a050e31471409df8edfaeb88befb8\"\u003e\u003ccode\u003e98bb10c\u003c/code\u003e\u003c/a\u003e Add config option to allow omitting stars in varargs (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/277\"\u003e#277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/c37407d03df27b4c37b31e697fd474377c3c4efc\"\u003e\u003ccode\u003ec37407d\u003c/code\u003e\u003c/a\u003e Fix baseline renegeration bug (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/276\"\u003e#276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/3386cd2ad39784792a0d39d942dd4b26960c2a27\"\u003e\u003ccode\u003e3386cd2\u003c/code\u003e\u003c/a\u003e Fix baseline renegeration bug (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/275\"\u003e#275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/8c1081806da276917ac686a12f0c435414955da0\"\u003e\u003ccode\u003e8c10818\u003c/code\u003e\u003c/a\u003e Fix how multiple \u003cstrong\u003einit\u003c/strong\u003e() are recognized (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/273\"\u003e#273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/51435e3714765f9d4b220c868ab185670f3bb14b\"\u003e\u003ccode\u003e51435e3\u003c/code\u003e\u003c/a\u003e Add ability to partially match violation codes (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/e361239034992fbceac83994e47a40a5e7ecf3ea\"\u003e\u003ccode\u003ee361239\u003c/code\u003e\u003c/a\u003e Change logic to detect docstring style mismatch (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/271\"\u003e#271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/bf4c4021dccf832777452e05e94f98a36c59636b\"\u003e\u003ccode\u003ebf4c402\u003c/code\u003e\u003c/a\u003e Add hyperlink\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/a7585273e2b3c8e84a1883d33a168519947c807f\"\u003e\u003ccode\u003ea758527\u003c/code\u003e\u003c/a\u003e Update --check-style-mismatch explanations in config_options.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/e8ffd8988fe57ce4dc8a0625c3281b24ca396240\"\u003e\u003ccode\u003ee8ffd89\u003c/code\u003e\u003c/a\u003e Add inline violation suppression for native mode (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/270\"\u003e#270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/0a9ad0c159fe5ced98dbbcd3b850a8850ed009b7\"\u003e\u003ccode\u003e0a9ad0c\u003c/code\u003e\u003c/a\u003e Refresh linters \u0026amp; formatters (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.6.0...0.8.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markdown` from 3.7 to 3.10.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a regression related to comment handling (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1590\"\u003e#1590\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMore reliable fix for \u003ccode\u003e\u0026lt;/\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1593\"\u003e#1593\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.10.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.9.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.10.2] - 2026-02-09\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a regression related to comment handling (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1590\"\u003e#1590\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMore reliable fix for \u003ccode\u003e\u0026lt;/\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1593\"\u003e#1593\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.1] - 2026-01-21\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/e7a0efb3a7c36d6b8005403122705662bc17c904\"\u003e\u003ccode\u003ee7a0efb\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/630183336bda57c258becc3ed229105481876a7e\"\u003e\u003ccode\u003e6301833\u003c/code\u003e\u003c/a\u003e Document HTML sanitation policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/7f29f1a69d236f5bb11645c2fa03fcf701487c8c\"\u003e\u003ccode\u003e7f29f1a\u003c/code\u003e\u003c/a\u003e More reliable fix for \u003ccode\u003e\u0026lt;/\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c4386475a6b6daea43b7d7717add4271adc9a3c1\"\u003e\u003ccode\u003ec438647\u003c/code\u003e\u003c/a\u003e Fix regression of special comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/e5fa5b86e8ec380cbc520cfc637d72c779e5c601\"\u003e\u003ccode\u003ee5fa5b8\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/f9253495f5d9919f2fdd5e147832b5fc21330f65\"\u003e\u003ccode\u003ef925349\u003c/code\u003e\u003c/a\u003e More HTML fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/9933a0a4699f3dea91f46528a2bf54863f531c08\"\u003e\u003ccode\u003e9933a0a\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Allow reference links with backticks\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/07dfa4eb43f7a2ab3181b4f842a960a03a6c1221\"\u003e\u003ccode\u003e07dfa4e\u003c/code\u003e\u003c/a\u003e Allow reference links with backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/fb6b27a6ff90980b5bcb0cd51528a7c9dc3a93ca\"\u003e\u003ccode\u003efb6b27a\u003c/code\u003e\u003c/a\u003e Fix infinite loop when text contains multiple unclosed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/89112c293f7b399ae8808f3a06306f46601e9684\"\u003e\u003ccode\u003e89112c2\u003c/code\u003e\u003c/a\u003e Make the docs build successfully with mkdocstrings-python 2.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.7...3.10.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.5.0 to 0.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompatibility with MkDocs 1.6 is improved - generated files don't have to have an \u003ccode\u003eabs_src_path\u003c/code\u003e - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThere was a bug: using \u003ccode\u003eedit_uri_template\u003c/code\u003e in MkDocs would prevent \u003ccode\u003eset_edit_path()\u003c/code\u003e from working.\nThis is now fixed - \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/37\"\u003e#37\u003c/a\u003e - thanks to \u003ca href=\"https://github.com/frankkusters\"\u003e\u003ccode\u003e@​frankkusters\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe MkDocs configuration file now can be \u003ccode\u003emkdocs.yaml\u003c/code\u003e, not only \u003ccode\u003emkdocs.yml\u003c/code\u003e. Thanks to \u003ca href=\"https://github.com/mgor\"\u003e\u003ccode\u003e@​mgor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/39\"\u003eoprypin/mkdocs-gen-files#39\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMkDocs 1.4.1 is now the lowest supported version -  \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.9 is now the lowest supported version.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ca href=\"https://oprypin.github.io/mkdocs-gen-files/extras.html#programmatically-generating-the-navigation\"\u003enav generator\u003c/a\u003e can support empty paths - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.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/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/1a822d9e0d376d8ecae95fb961144a5af4887ef1\"\u003e\u003ccode\u003e1a822d9\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003e\u003ccode\u003e7baa032\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/6fd0fe048ebf928763458d8dba1a476ca2196117\"\u003e\u003ccode\u003e6fd0fe0\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-literate-nav` from 0.6.1 to 0.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/releases\"\u003emkdocs-literate-nav's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/6cc020ab973468678fa4420434ce84ee53ea2208?w=1\"\u003eFix compatibility with MkDocs 1.6+\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire at least MkDocs 1.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther refactors, see \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.1...v0.6.2\"\u003ehttps://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.1...v0.6.2\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/oprypin/mkdocs-literate-nav/commit/7423f00fe2c26c879310f76631b8180cb2bb6ace\"\u003e\u003ccode\u003e7423f00\u003c/code\u003e\u003c/a\u003e v0.6.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/285344cc3e328c484deb5d932b722a252336e71b\"\u003e\u003ccode\u003e285344c\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/c39fba6d1d789fb7ab9ee31d75fc2ec5973797c0\"\u003e\u003ccode\u003ec39fba6\u003c/code\u003e\u003c/a\u003e Put more items into TYPE_CHECKING\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/889bcb240e2757f4a2a0efd3a0ef9d58db96427d\"\u003e\u003ccode\u003e889bcb2\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/12f9f79e8ce5d6ee2c934e7787d20d0f055e4c50\"\u003e\u003ccode\u003e12f9f79\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/57210ef5a0e855d7cf49be6e2136e9208493cc13\"\u003e\u003ccode\u003e57210ef\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/6cc020ab973468678fa4420434ce84ee53ea2208\"\u003e\u003ccode\u003e6cc020a\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/9c0564974487df94a62158028fd5e839f6779f68\"\u003e\u003ccode\u003e9c05649\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/07787d5ac634eca808742de2dfafad60f676d90c\"\u003e\u003ccode\u003e07787d5\u003c/code\u003e\u003c/a\u003e Refactor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/1a7b4d74d283cdabe0b625614cf00e299d678c3f\"\u003e\u003ccode\u003e1a7b4d7\u003c/code\u003e\u003c/a\u003e Refactor for type annotations\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.1...v0.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-macros-plugin` from 1.3.7 to 1.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/blob/master/CHANGELOG.md\"\u003emkdocs-macros-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.0, 2025-11-13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: For each push, testing on github for versions Python 3.8 to 3.12\u003c/li\u003e\n\u003cli\u003eFixed: bug in import of packages when not in source dir (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.1, 2025-10-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: support for j2_extensions paramater in config file (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed: missing dependency declaration on \u003ccode\u003erequests\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.0, 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: auto-install of missing pluglet (meaningful error message \u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed: error with yaml dumps (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/258\"\u003e#258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed: detection of Jinja2, to allow title rendering (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/266\"\u003e#266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSmall improvements to documentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/0536f4da1dc643e1fa1f0cc90e71512ada67dc04\"\u003e\u003ccode\u003e0536f4d\u003c/code\u003e\u003c/a\u003e Fix type hint for compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/d9a6bc3aac5b12b86f9e2be7af18e1e9178287f6\"\u003e\u003ccode\u003ed9a6bc3\u003c/code\u003e\u003c/a\u003e Require mkdocs-test\u0026gt;=0.6.0 (compatibility with Python 3.8 and 3.9)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/bcaa72db2820d60822ffba15e87c75669abc7b92\"\u003e\u003ccode\u003ebcaa72d\u003c/code\u003e\u003c/a\u003e Make last minute corrections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/356fc2a5b55d1897a2f2c47856d52b10cff4611c\"\u003e\u003ccode\u003e356fc2a\u003c/code\u003e\u003c/a\u003e Prepare for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/aaf16bdcb9dfcb9c6ea9b6567ea4af7f8c178185\"\u003e\u003ccode\u003eaaf16bd\u003c/code\u003e\u003c/a\u003e Limit testing to 3.10 up (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/ba5356c0c263355556aa82dad0fbfde3cce4bc4d\"\u003e\u003ccode\u003eba5356c\u003c/code\u003e\u003c/a\u003e Use proper exit for pytest if Python \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/6c796600bc0886696ce9b76b84354d7e2bc1b6fa\"\u003e\u003ccode\u003e6c79660\u003c/code\u003e\u003c/a\u003e Skip test_modules.py if Python version \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cec7440d46589b303d741a5e2df0a240c25b9bdb\"\u003e\u003ccode\u003ecec7440\u003c/code\u003e\u003c/a\u003e Test installation of d2 in a cross-platform way (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/492759c5ab3d05f7c55ec62ffdf9573b715ac6ed\"\u003e\u003ccode\u003e492759c\u003c/code\u003e\u003c/a\u003e Update with changes from local repo (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cc5416834a07ffd2ba1fe3d917a701ac6e9c98ad\"\u003e\u003ccode\u003ecc54168\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:fralau/mkdocs_macros_plugin\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fralau/mkdocs_macros_plugin/compare/v1.3.7...v1.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.6.2 to 9.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.1\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is now in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features. Going forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the Insiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNote on deprecated plugins\u003c/strong\u003e: The [projects] and [typeset] plugins are included in this release, but must be considered deprecated. Both plugins proved unsustainable to maintain and represent architectural dead ends. They are provided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eChanges\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for projects plugin (for compat, now deprecated)\u003c/li\u003e\n\u003cli\u003eAdded support for typeset plugin (for compat, now deprecated)\u003c/li\u003e\n\u003cli\u003eAdded support for pinned blog posts and author profiles\u003c/li\u003e\n\u003cli\u003eAdded support for customizing pagination for blog index pages\u003c/li\u003e\n\u003cli\u003eAdded support for customizing blog category sort order\u003c/li\u003e\n\u003cli\u003eAdded support for staying on page when switching languages\u003c/li\u003e\n\u003cli\u003eAdded support for disabling tags in table of contents\u003c/li\u003e\n\u003cli\u003eAdded support for nested tags and shadow tags\u003c/li\u003e\n\u003cli\u003eAdded support for footnote tooltips\u003c/li\u003e\n\u003cli\u003eAdded support for instant previews\u003c/li\u003e\n\u003cli\u003eAdded support for instant prefetching\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card layouts\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card background images\u003c/li\u003e\n\u003cli\u003eAdded support for selectable rangs in code blocks\u003c/li\u003e\n\u003cli\u003eAdded support for custom selectors for code annotations\u003c/li\u003e\n\u003cli\u003eAdded support for configurable log level in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for processing of external links in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pinned blog posts and author profiles\u003c/li\u003e\n\u003cli\u003eAdded support for customizing pagination for blog index pages\u003c/li\u003e\n\u003cli\u003eAdded support for customizing blog category sort order\u003c/li\u003e\n\u003cli\u003eAdded support for staying on page when switching languages\u003c/li\u003e\n\u003cli\u003eAdded support for disabling tags in table of contents\u003c/li\u003e\n\u003cli\u003eAdded support for nested tags and shadow tags\u003c/li\u003e\n\u003cli\u003eAdded support for footnote tooltips\u003c/li\u003e\n\u003cli\u003eAdded support for instant previews\u003c/li\u003e\n\u003cli\u003eAdded support for instant prefetching\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card layouts\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card background images\u003c/li\u003e\n\u003cli\u003eAdded support for selectable rangs in code blocks\u003c/li\u003e\n\u003cli\u003eAdded support for custom selectors for code annotations\u003c/li\u003e\n\u003cli\u003eAdded support for configurable log level in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for processing of external links in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for automatic image optimization via optimize plugin\u003c/li\u003e\n\u003cli\u003eAdded support for navigation paths (breadcrumbs)\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8519\"\u003e#8519\u003c/a\u003e: Vector accents do not render when using KaTeX\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.6.23 (2025-11-01)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Burmese translation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/7e236f6866b73aa080cd4d209752f6440bf67440\"\u003e\u003ccode\u003e7e236f6\u003c/code\u003e\u003c/a\u003e Temporarily disable publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/394149152dc10fc5383c956cd133a665c22fa907\"\u003e\u003ccode\u003e3941491\u003c/code\u003e\u003c/a\u003e Fixed CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/034eaf7b0b7a0a4d2e66179de0dcaded4c923f76\"\u003e\u003ccode\u003e034eaf7\u003c/code\u003e\u003c/a\u003e Prepare 9.7.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/79ba428abebf9b365d4930fb9b147255edd10b88\"\u003e\u003ccode\u003e79ba428\u003c/code\u003e\u003c/a\u003e Fixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/61cad249b6eec5727bcf245ca2dea3ef6c98790f\"\u003e\u003ccode\u003e61cad24\u003c/code\u003e\u003c/a\u003e Updated dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/dde13ceb9bb49be3b84bc8c1e59b313250ea8516\"\u003e\u003ccode\u003edde13ce\u003c/code\u003e\u003c/a\u003e Fixed false positives and negatives captured in privacy plugin  (\u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/291012dcf5aff75a32a6fe9e9a6be4d769da12ac\"\u003e\u003ccode\u003e291012d\u003c/code\u003e\u003c/a\u003e Updated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/673d8ca986c37ddeabe25c7e7b7299ec644910ed\"\u003e\u003ccode\u003e673d8ca\u003c/code\u003e\u003c/a\u003e Fixed links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/17227844dce216bf172c9e5de69809765a0b5ab7\"\u003e\u003ccode\u003e1722784\u003c/code\u003e\u003c/a\u003e Documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/aee925f5a0ae3e343ff310e35c667d24eeaff7df\"\u003e\u003ccode\u003eaee925f\u003c/code\u003e\u003c/a\u003e Fixed links\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.6.2...9.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `frequenz-repo-config[lib]` from 0.12.3 to 0.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/releases\"\u003efrequenz-repo-config[lib]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.0\u003c/h2\u003e\n\u003ch1\u003eFrequenz Repository Configuration Release Notes\u003c/h1\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis release adds a new workflow for Dependabot auto-merge and updates mkdocstrings to v2.\u003c/p\u003e\n\u003ch2\u003eUpgrading\u003c/h2\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cp\u003eAll upgrading should be done via the migration script or regenerating the templates.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecurl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.14.0/cookiecutter/migrate.py | python3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eBut you might still need to adapt your code, just have a look at the script output for further instructions.\u003c/p\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emkdocsstrings-python\u003c/code\u003e v2 is now supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDependencies have been updated.\u003c/li\u003e\n\u003cli\u003eNew warning ignores for protobuf gencode versions in pytest.\u003c/li\u003e\n\u003cli\u003eAdded Dependabot auto-merge workflow using \u003ccode\u003efrequenz-floss/dependabot-auto-approve\u003c/code\u003e action.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emkdocstrings: Move \u003ccode\u003epaths\u003c/code\u003e key to the right section in \u003ccode\u003emkdocs.yml\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix invalid YAML syntax in Dependabot workflow template.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump types-pyyaml from 6.0.12.20250402 to 6.0.12.20250516 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/410\"\u003efrequenz-floss/frequenz-repo-config-python#410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the patch group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/408\"\u003efrequenz-floss/frequenz-repo-config-python#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the minor group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/409\"\u003efrequenz-floss/frequenz-repo-config-python#409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove filtering of warnings in pytest by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/411\"\u003efrequenz-floss/frequenz-repo-config-python#411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix mkdocsstrings config by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/412\"\u003efrequenz-floss/frequenz-repo-config-python#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge v0.13.x into v0.x.x by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/420\"\u003efrequenz-floss/frequenz-repo-config-python#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the patch group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/424\"\u003efrequenz-floss/frequenz-repo-config-python#424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the minor group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/423\"\u003efrequenz-floss/frequenz-repo-config-python#423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate templates dependencies by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/431\"\u003efrequenz-floss/frequenz-repo-config-python#431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump types-markdown from 3.8.0.20250415 to 3.8.0.20250708 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/430\"\u003efrequenz-floss/frequenz-repo-config-python#430\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mypy from 1.16.1 to 1.17.1 in the minor group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/428\"\u003efrequenz-floss/frequenz-repo-config-python#428\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the mkdocstrings group across 1 directory with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/432\"\u003efrequenz-floss/frequenz-repo-config-python#432\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/frequenz-floss/frequenz-repo-config-python/blob/v0.x.x/RELEASE_NOTES.md\"\u003efrequenz-repo-config[lib]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFrequenz Repository Configuration Release Notes\u003c/h1\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis release migrates lightweight GitHub Actions workflow jobs to use the new cost-effective \u003ccode\u003eubuntu-slim\u003c/code\u003e runner.\nIt also updates cookiecutter pyproject license metadata to SPDX expressions to avoid setuptools deprecation warnings.\u003c/p\u003e\n\u003ch2\u003eUpgrading\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cp\u003eAll upgrading should be done via the migration script or regenerating the templates.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecurl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.14.0/cookiecutter/migrate.py | python3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eBut you might still need to adapt your code:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated lightweight workflow jobs to use the new \u003ccode\u003eubuntu-slim\u003c/code\u003e runner for cost savings.\nThe following jobs now use \u003ccode\u003eubuntu-slim\u003c/code\u003e:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eci.yaml\u003c/code\u003e: \u003ccode\u003eprotolint\u003c/code\u003e, \u003ccode\u003enox-all\u003c/code\u003e, \u003ccode\u003etest-installation-all\u003c/code\u003e, \u003ccode\u003ecreate-github-release\u003c/code\u003e, \u003ccode\u003epublish-to-pypi\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eci-pr.yaml\u003c/code\u003e: \u003ccode\u003eprotolint\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eauto-dependabot.yaml\u003c/code\u003e: \u003ccode\u003eauto-merge\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erelease-notes-check.yml\u003c/code\u003e: \u003ccode\u003echeck-release-notes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edco-merge-queue.yml\u003c/code\u003e: \u003ccode\u003eDCO\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elabeler.yml\u003c/code\u003e: \u003ccode\u003eLabel\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched \u003ccode\u003eproject.license\u003c/code\u003e to SPDX expressions and added \u003ccode\u003eproject.license-files\u003c/code\u003e.\nThis removes deprecated setuptools license metadata and avoids build warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/a72bd53788be72e52e392ba037d1846e9af9bdb0\"\u003e\u003ccode\u003ea72bd53\u003c/code\u003e\u003c/a\u003e Update mypy-protobuf requirement from \u0026lt;4,\u0026gt;=3.0.0 to \u0026gt;=3.0.0,\u0026lt;5 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/489\"\u003e#489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/10341d61167efc0469c829a7e5159f4fb98db43b\"\u003e\u003ccode\u003e10341d6\u003c/code\u003e\u003c/a\u003e template: Bump protobuf and grpcio to latest versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/af4476785f83336c08114d344820f3c5e47819fa\"\u003e\u003ccode\u003eaf44767\u003c/code\u003e\u003c/a\u003e Update mypy-protobuf requirement from \u0026lt;4,\u0026gt;=3.0.0 to \u0026gt;=3.0.0,\u0026lt;5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/8a4e067b5d713b7667fa0e2fb00328de43bf2355\"\u003e\u003ccode\u003e8a4e067\u003c/code\u003e\u003c/a\u003e Prepare for release v0.14.0 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/490\"\u003e#490\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/73dc4ef502a49f798a6ad672edd6b6b5478851ec\"\u003e\u003ccode\u003e73dc4ef\u003c/code\u003e\u003c/a\u003e Prepare for release v0.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/3d86e084ef981c8f5c8b7256918866bd22bbc069\"\u003e\u003ccode\u003e3d86e08\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/5894e50f24b3fcd742d8d44d2c370ad9a43d734f\"\u003e\u003ccode\u003e5894e50\u003c/code\u003e\u003c/a\u003e Bump pydoclint from 0.7.3 to 0.8.3 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/4a81cbbb8281d46e23c58112bdd202ace0861c85\"\u003e\u003ccode\u003e4a81cbb\u003c/code\u003e\u003c/a\u003e Bump frequenz-floss/gh-action-nox from 1.0.1 to 1.1.0 in the compatible group...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/41b3a2cb1a54c14ca1a4bc1bb983b17bee5580b1\"\u003e\u003ccode\u003e41b3a2c\u003c/code\u003e\u003c/a\u003e Bump pytest from 9.0.1 to 9.0.2 in the patch group (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/487\"\u003e#487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/c2bbc77892b57010335680effe03cb368dc54b75\"\u003e\u003ccode\u003ec2bbc77\u003c/code\u003e\u003c/a\u003e Bump the minor group with 7 updates (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/compare/v0.12.3...v0.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.9.0 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/1.9.0...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-markdown` from 3.7.0.20241204 to 3.10.0.20251106\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 `frequenz-repo-config[extra-lint-examples]` from 0.12.3 to 0.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/releases\"\u003efrequenz-repo-config[extra-lint-examples]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.0\u003c/h2\u003e\n\u003ch1\u003eFrequenz Repository Configuration Release Notes\u003c/h1\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis release adds a new workflow for Dependabot auto-merge and updates mkdocstrings to v2.\u003c/p\u003e\n\u003ch2\u003eUpgrading\u003c/h2\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cp\u003eAll upgrading should be done via the migration script or regenerating the templates.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecurl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.14.0/cookiecutter/migrate.py | python3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eBut you might still need to adapt your code, just have a look at the script output for further instructions.\u003c/p\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emkdocsstrings-python\u003c/code\u003e v2 is now supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDependencies have been updated.\u003c/li\u003e\n\u003cli\u003eNew warning ignores for protobuf gencode versions in pytest.\u003c/li\u003e\n\u003cli\u003eAdded Dependabot auto-merge workflow using \u003ccode\u003efrequenz-floss/dependabot-auto-approve\u003c/code\u003e action.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emkdocstrings: Move \u003ccode\u003epaths\u003c/code\u003e key to the right section in \u003ccode\u003emkdocs.yml\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix invalid YAML syntax in Dependabot workflow template.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump types-pyyaml from 6.0.12.20250402 to 6.0.12.20250516 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/410\"\u003efrequenz-floss/frequenz-repo-config-python#410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the patch group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/408\"\u003efrequenz-floss/frequenz-repo-config-python#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the minor group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/409\"\u003efrequenz-floss/frequenz-repo-config-python#409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove filtering of warnings in pytest by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/411\"\u003efrequenz-floss/frequenz-repo-config-python#411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix mkdocsstrings config by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/412\"\u003efrequenz-floss/frequenz-repo-config-python#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge v0.13.x into v0.x.x by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/420\"\u003efrequenz-floss/frequenz-repo-config-python#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the patch group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/424\"\u003efrequenz-floss/frequenz-repo-config-python#424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the minor group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/423\"\u003efrequenz-floss/frequenz-repo-config-python#423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate templates dependencies by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/431\"\u003efrequenz-floss/frequenz-repo-config-python#431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump types-markdown from 3.8.0.20250415 to 3.8.0.20250708 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/430\"\u003efrequenz-floss/frequenz-repo-config-python#430\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mypy from 1.16.1 to 1.17.1 in the minor group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/428\"\u003efrequenz-floss/frequenz-repo-config-python#428\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the mkdocstrings group across 1 directory with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/432\"\u003efrequenz-floss/frequenz-repo-config-python#432\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/frequenz-floss/frequenz-repo-config-python/blob/v0.x.x/RELEASE_NOTES.md\"\u003efrequenz-repo-config[extra-lint-examples]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFrequenz Repository Configuration Release Notes\u003c/h1\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis release migrates lightweight GitHub Actions workflow jobs to use the new cost-effective \u003ccode\u003eubuntu-slim\u003c/code\u003e runner.\nIt also updates cookiecutter pyproject license metadata to SPDX expressions to avoid setuptools deprecation warnings.\u003c/p\u003e\n\u003ch2\u003eUpgrading\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cp\u003eAll upgrading should be done via the migration script or regenerating the templates.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecurl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.14.0/cookiecutter/migrate.py | python3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eBut you might still need to adapt your code:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated lightweight workflow jobs to use the new \u003ccode\u003eubuntu-slim\u003c/code\u003e runner for cost savings.\nThe following jobs now use \u003ccode\u003eubuntu-slim\u003c/code\u003e:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eci.yaml\u003c/code\u003e: \u003ccode\u003eprotolint\u003c/code\u003e, \u003ccode\u003enox-all\u003c/code\u003e, \u003ccode\u003etest-installation-all\u003c/code\u003e, \u003ccode\u003ecreate-github-release\u003c/code\u003e, \u003ccode\u003epublish-to-pypi\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eci-pr.yaml\u003c/code\u003e: \u003ccode\u003eprotolint\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eauto-dependabot.yaml\u003c/code\u003e: \u003ccode\u003eauto-merge\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erelease-notes-check.yml\u003c/code\u003e: \u003ccode\u003echeck-release-notes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edco-merge-queue.yml\u003c/code\u003e: \u003ccode\u003eDCO\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elabeler.yml\u003c/code\u003e: \u003ccode\u003eLabel\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched \u003ccode\u003eproject.license\u003c/code\u003e to SPDX expressions and added \u003ccode\u003eproject.license-files\u003c/code\u003e.\nThis removes deprecated setuptools license metadata and avoids build warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/a72bd53788be72e52e392ba037d1846e9af9bdb0\"\u003e\u003ccode\u003ea72bd53\u003c/code\u003e\u003c/a\u003e Update mypy-protobuf requirement from \u0026lt;4,\u0026gt;=3.0.0 to \u0026gt;=3.0.0,\u0026lt;5 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/489\"\u003e#489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/10341d61167efc0469c829a7e5159f4fb98db43b\"\u003e\u003ccode\u003e10341d6\u003c/code\u003e\u003c/a\u003e template: Bump protobuf and grpcio to latest versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/af4476785f83336c08114d344820f3c5e47819fa\"\u003e\u003ccode\u003eaf44767\u003c/code\u003e\u003c/a\u003e Update mypy-protobuf requirement from \u0026lt;4,\u0026gt;=3.0.0 to \u0026gt;=3.0.0,\u0026lt;5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/8a4e067b5d713b7667fa0e2fb00328de43bf2355\"\u003e\u003ccode\u003e8a4e067\u003c/code\u003e\u003c/a\u003e Prepare for release v0.14.0 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/490\"\u003e#490\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/73dc4ef502a49f798a6ad672edd6b6b5478851ec\"\u003e\u003ccode\u003e73dc4ef\u003c/code\u003e\u003c/a\u003e Prepare for release v0.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/3d86e084ef981c8f5c8b7256918866bd22bbc069\"\u003e\u003ccode\u003e3d86e08\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github....\n\n_Description has been truncated_","html_url":"https://github.com/llucax/frequenz-client-weather-python/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/llucax%2Ffrequenz-client-weather-python/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"},{"uuid":"3858298658","node_id":"PR_kwDOMFeY886_fIza","number":148,"state":"open","title":"python-deps(deps): bump the python-dependencies group across 1 directory with 15 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["dependabot[bot]"],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-27T00:43:28.000Z","updated_at":"2026-01-27T00:54:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"python-deps(deps): bump","group_name":"python-dependencies","update_count":15,"packages":[{"name":"black","old_version":"25.12.0","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"mkdocs-gen-files","old_version":"0.5.0","new_version":"0.6.0","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-include-markdown-plugin","old_version":"7.2.0","new_version":"7.2.1","repository_url":"https://github.com/mondeja/mkdocs-include-markdown-plugin"},{"name":"mkdocstrings","old_version":"0.30.1","new_version":"1.0.2","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"mkdocstrings-python","old_version":"1.19.0","new_version":"2.0.1","repository_url":"https://github.com/mkdocstrings/python"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pymdown-extensions","old_version":"10.20","new_version":"10.20.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"coverage","old_version":"7.13.1","new_version":"7.13.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [pylint](https://github.com/pylint-dev/pylint), [pyright](https://github.com/RobertCraigie/pyright-python), [wheel](https://github.com/pypa/wheel), [black](https://github.com/psf/black), [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files), [mkdocs-include-markdown-plugin](https://github.com/mondeja/mkdocs-include-markdown-plugin), [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings), [mkdocstrings-python](https://github.com/mkdocstrings/python), [packaging](https://github.com/pypa/packaging), [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions), [coverage](https://github.com/coveragepy/coveragepy), [pytest](https://github.com/pytest-dev/pytest), [markdown](https://github.com/Python-Markdown/markdown), [setuptools](https://github.com/pypa/setuptools) and [coverage[toml]](https://github.com/coveragepy/coveragepy) to permit the latest version.\nUpdates `pylint` to 4.0.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/e16f942166511d6fb4427e503a734152fae0c4fe\"\u003e\u003ccode\u003ee16f942\u003c/code\u003e\u003c/a\u003e Bump pylint to 4.0.4, update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/657b386c0a83202faa95c9a525b8feb80a4c11ab\"\u003e\u003ccode\u003e657b386\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] [invalid-name] Fix FP for exclusive assignment o...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/03f8a922a2eabe5b517457807cc992e122dcc9c0\"\u003e\u003ccode\u003e03f8a92\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] fix: avoid false positive when module-level name...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/84b6552b86e210097ac29de7ef64b152efb4a454\"\u003e\u003ccode\u003e84b6552\u003c/code\u003e\u003c/a\u003e Bump pylint to 4.0.3, update changelog (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10741\"\u003e#10741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/77b0cd8c0e40eb563ab96067be6bdb3e9e266f1e\"\u003e\u003ccode\u003e77b0cd8\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] fix(expand_modules): pass ignore_list to modutil...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/755f2d0327809a5b358b99ad7fc67a7a5a2faad0\"\u003e\u003ccode\u003e755f2d0\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Upgrade astroid to 4.0.2 (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10733\"\u003e#10733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/c96a9e4d232abcfa1d7f449839b68337816305e9\"\u003e\u003ccode\u003ec96a9e4\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix crash when a variable annotation is used as ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/108191ebbcd9dc8fa9e3fb71c83fd247d2f6ccd1\"\u003e\u003ccode\u003e108191e\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix a false positive for class attribute typed w...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/0ed81725382db48ac0061c96c1948f42fe75f85d\"\u003e\u003ccode\u003e0ed8172\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix crash when a \u003ccode\u003eslice\u003c/code\u003e object is called (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10728\"\u003e#10728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/b128b7d909bf541b2978d84bfe5ed4f4d67210e5\"\u003e\u003ccode\u003eb128b7d\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix a false positive for ``unbalanced-tuple-unpa...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pylint-dev/pylint/compare/v3.3.8...v4.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` to 1.1.408\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/81b795a41ddcc3c77218d8c8e406983e39852285\"\u003e\u003ccode\u003e81b795a\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.408 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/53e8efb4638daca6c541d18ad35dafb0e5d9f34d\"\u003e\u003ccode\u003e53e8efb\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.407 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/1d515b71299f9dc4c066ce37e673d93bda4bc2df\"\u003e\u003ccode\u003e1d515b7\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.406 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.405...v1.1.408\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `wheel` to 0.46.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/releases\"\u003ewheel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.46.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eImportError: cannot import name '_setuptools_logging' from 'wheel'\u003c/code\u003e when installed alongside an old version of setuptools and running the \u003ccode\u003ebdist_wheel\u003c/code\u003e command (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/676\"\u003e#676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/blob/main/docs/news.rst\"\u003ewheel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease Notes\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.3 (2026-01-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eImportError: cannot import name '_setuptools_logging' from 'wheel'\u003c/code\u003e when\ninstalled alongside an old version of setuptools and running the \u003ccode\u003ebdist_wheel\u003c/code\u003e\ncommand (\u003ccode\u003e[#676](https://github.com/pypa/wheel/issues/676) \u0026lt;https://github.com/pypa/wheel/issues/676\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.2 (2026-01-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestored the \u003ccode\u003ebdist_wheel\u003c/code\u003e command for compatibility with \u003ccode\u003esetuptools\u003c/code\u003e older than\nv70.1\u003c/li\u003e\n\u003cli\u003eImporting \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e instead of a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel unpack\u003c/code\u003e potentially altering the permissions of files outside of the\ndestination tree with maliciously crafted wheels (CVE-2026-24049)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.1 (2025-04-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTemporarily restored the \u003ccode\u003ewheel.macosx_libfile\u003c/code\u003e module\n(\u003ccode\u003e[#659](https://github.com/pypa/wheel/issues/659) \u0026lt;https://github.com/pypa/wheel/issues/659\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.0 (2025-04-03)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003ebdist_wheel\u003c/code\u003e setuptools command implementation and entry point.\nThe \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e module is now just an alias to\n\u003ccode\u003esetuptools.command.bdist_wheel\u003c/code\u003e, emitting a deprecation warning on import.\u003c/li\u003e\n\u003cli\u003eRemoved vendored \u003ccode\u003epackaging\u003c/code\u003e in favor of a run-time dependency on it\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.metadata\u003c/code\u003e module private (with a deprecation warning if it's\nimported\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.cli\u003c/code\u003e package private (no deprecation warning)\u003c/li\u003e\n\u003cli\u003eFixed an exception when calling the \u003ccode\u003econvert\u003c/code\u003e command with an empty description\nfield\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.1 (2024-11-23)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed pure Python wheels converted from eggs and wininst files having the ABI tag in\nthe file name\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.0 (2024-11-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRefactored the \u003ccode\u003econvert\u003c/code\u003e command to not need setuptools to be installed\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't configure setuptools logging unless running \u003ccode\u003ebdist_wheel\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a redirection from \u003ccode\u003ewheel.bdist_wheel.bdist_wheel\u003c/code\u003e to\n\u003ccode\u003esetuptools.command.bdist_wheel.bdist_wheel\u003c/code\u003e to improve compatibility with\n\u003ccode\u003esetuptools\u003c/code\u003e' latest fixes.\u003c/p\u003e\n\u003cp\u003eProjects are still advised to migrate away from the deprecated  module and import\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/pypa/wheel/commit/8b6fa740a7101edacb42b0f8e83a1b659ff61033\"\u003e\u003ccode\u003e8b6fa74\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/7445fb5bc13c91052021c40981fb0ec7172880bd\"\u003e\u003ccode\u003e7445fb5\u003c/code\u003e\u003c/a\u003e Fixed an import of a removed module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/eba4036ccaca4e2d0c5b5bf3e3be59b2b2877d6b\"\u003e\u003ccode\u003eeba4036\u003c/code\u003e\u003c/a\u003e Updated the version number for v0.46.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/557fb5425036ccca95330b2c8875e54c9f4483cf\"\u003e\u003ccode\u003e557fb54\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/7a7d2de96b22a9adf9208afcc9547e1001569fef\"\u003e\u003ccode\u003e7a7d2de\u003c/code\u003e\u003c/a\u003e Fixed security issue around wheel unpack (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/675\"\u003e#675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/41418fac233d6973ea8798d620df4aa5b3aa1b66\"\u003e\u003ccode\u003e41418fa\u003c/code\u003e\u003c/a\u003e Fixed test failures due to metadata normalization changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/c1d442bec6c634fcfb89e5d58698dd226685bd14\"\u003e\u003ccode\u003ec1d442b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/674\"\u003e#674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/0bac8820ec90b1aaa0695d79a56563137b48686d\"\u003e\u003ccode\u003e0bac882\u003c/code\u003e\u003c/a\u003e Update github actions environments (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/673\"\u003e#673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/be9f45b4ee1210b2a815d2eefea56b71efd99d63\"\u003e\u003ccode\u003ebe9f45b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/667\"\u003e#667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/6244f08bb92d7569da6c2fbea23de0846ad34ff3\"\u003e\u003ccode\u003e6244f08\u003c/code\u003e\u003c/a\u003e Update pre-commit ruff legacy alias (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/668\"\u003e#668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/wheel/compare/0.45.0...0.46.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 25.12.0 to 26.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \u003ccode\u003eas\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\nmatching subdirectories (like the previous behavior did), and not just matching root\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \u003ccode\u003eas\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6305bf1ae645ab7541be4f5028a86239316178eb\"\u003e\u003ccode\u003e6305bf1\u003c/code\u003e\u003c/a\u003e Prepare 2026.1.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e71305bee302f7f9016b228361e5ae69669dca7b\"\u003e\u003ccode\u003ee71305b\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.3.0 to 3.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4961\"\u003e#4961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/21a2a8c2b1d0c8d47bc00cc59591470f6a9e2307\"\u003e\u003ccode\u003e21a2a8c\u003c/code\u003e\u003c/a\u003e Fix Shutdown multiprocessing Manager in schedule_formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4952\"\u003e#4952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e3146cea4245fcee29d007cb45d9faaf63271586\"\u003e\u003ccode\u003ee3146ce\u003c/code\u003e\u003c/a\u003e Bump docker/setup-buildx-action from 3.11.1 to 3.12.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4919\"\u003e#4919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/fe1fbc4fdfa03fa1d460f975b8aca77e4b4f1a4a\"\u003e\u003ccode\u003efe1fbc4\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4923\"\u003e#4923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b4b7fcfe00bb0d99322e07e87fc2f0992f7a4d8\"\u003e\u003ccode\u003e2b4b7fc\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4922\"\u003e#4922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d745be69bfa9d85ec2ef6e5f9b7ec7e253b5e8ab\"\u003e\u003ccode\u003ed745be6\u003c/code\u003e\u003c/a\u003e docs: document --force-exclude for pre-commit workflows (\u003ca href=\"https://redirect.github.com/psf/black/issues/4957\"\u003e#4957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b41acd6ebbe76e18b49286166924f73f01c3fd02\"\u003e\u003ccode\u003eb41acd6\u003c/code\u003e\u003c/a\u003e Various CI and doc refactors (\u003ca href=\"https://redirect.github.com/psf/black/issues/4928\"\u003e#4928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6f43612766da4a2f275b575af0802c3e73b6ed83\"\u003e\u003ccode\u003e6f43612\u003c/code\u003e\u003c/a\u003e Handle pathspec v1 changes (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/200c550aff44372f801a6d826a361cb26f45a504\"\u003e\u003ccode\u003e200c550\u003c/code\u003e\u003c/a\u003e Bump furo from 2025.9.25 to 2025.12.19 in /docs (\u003ca href=\"https://redirect.github.com/psf/black/issues/4933\"\u003e#4933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.12.0...26.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.5.0 to 0.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompatibility with MkDocs 1.6 is improved - generated files don't have to have an \u003ccode\u003eabs_src_path\u003c/code\u003e - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThere was a bug: using \u003ccode\u003eedit_uri_template\u003c/code\u003e in MkDocs would prevent \u003ccode\u003eset_edit_path()\u003c/code\u003e from working.\nThis is now fixed - \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/37\"\u003e#37\u003c/a\u003e - thanks to \u003ca href=\"https://github.com/frankkusters\"\u003e\u003ccode\u003e@​frankkusters\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe MkDocs configuration file now can be \u003ccode\u003emkdocs.yaml\u003c/code\u003e, not only \u003ccode\u003emkdocs.yml\u003c/code\u003e. Thanks to \u003ca href=\"https://github.com/mgor\"\u003e\u003ccode\u003e@​mgor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/39\"\u003eoprypin/mkdocs-gen-files#39\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMkDocs 1.4.1 is now the lowest supported version -  \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.9 is now the lowest supported version.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ca href=\"https://oprypin.github.io/mkdocs-gen-files/extras.html#programmatically-generating-the-navigation\"\u003enav generator\u003c/a\u003e can support empty paths - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.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/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/1a822d9e0d376d8ecae95fb961144a5af4887ef1\"\u003e\u003ccode\u003e1a822d9\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003e\u003ccode\u003e7baa032\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/6fd0fe048ebf928763458d8dba1a476ca2196117\"\u003e\u003ccode\u003e6fd0fe0\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-include-markdown-plugin` from 7.2.0 to 7.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/releases\"\u003emkdocs-include-markdown-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.2.1\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize string concatenation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/39df60911e5a5da6cd0cdace89cead96c79636bc\"\u003e\u003ccode\u003e39df609\u003c/code\u003e\u003c/a\u003e Optimize string concatenation across multiple files (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/39fb543b070d00114b2ec72d6373499b74092066\"\u003e\u003ccode\u003e39fb543\u003c/code\u003e\u003c/a\u003e docs(license): update copyright year(s) (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/6fd647f159f346e002e14c175f0b8ea6e67f8144\"\u003e\u003ccode\u003e6fd647f\u003c/code\u003e\u003c/a\u003e Document that filesystem order allows reverse (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/32978ca56cbc343feda9d7e0e448162b272e7f5b\"\u003e\u003ccode\u003e32978ca\u003c/code\u003e\u003c/a\u003e Deduplicate common arguments in documentation (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/compare/v7.2.0...v7.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocstrings` from 0.30.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.2\"\u003e1.0.2\u003c/a\u003e - 2026-01-24\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.1...1.0.2\"\u003eCompare with 1.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse global instances for handlers and autorefs (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e9f79141\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.1\"\u003e1.0.1\u003c/a\u003e - 2026-01-19\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.1\"\u003eCompare with 1.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport manual cross-references in Zensical too (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003ed37d907\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eSupport cross-references in Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003ef43f1ee\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/812\"\u003ePR-812\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.0\"\u003e1.0.0\u003c/a\u003e - 2025-11-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.30.1...1.0.0\"\u003eCompare with 0.30.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.name\u003c/code\u003e: \u003cem\u003eAttribute value was changed\u003c/em\u003e: \u003ccode\u003e''\u003c/code\u003e -\u0026gt; unset\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.domain\u003c/code\u003e: \u003cem\u003eAttribute value was changed\u003c/em\u003e: \u003ccode\u003e''\u003c/code\u003e -\u0026gt; unset\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.fallback_config\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(args)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(kwargs)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(theme)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(custom_templates)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(mdx)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(mdx_config)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(args)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(kwargs)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(config)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eHandlers.get_anchors\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.plugin\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.loggers\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.inventory\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.extension\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.handlers\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated code before v1 (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/de34044a02b45250e215af0f969dca581dfb82c5\"\u003ede34044\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpect Zensical to pass extension configuration instead of loading it again from YAML (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/6b73d5a2f455062ab6c68376c85adce6adc037a3\"\u003e6b73d5a\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpose the Markdown extension, to make mkdocstrings compatible with Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/6de266759b79eb72cddd300e6a0a8576085fae40\"\u003e6de2667\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.2\"\u003e1.0.2\u003c/a\u003e - 2026-01-24\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.1...1.0.2\"\u003eCompare with 1.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse global instances for handlers and autorefs (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e9f79141\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.1\"\u003e1.0.1\u003c/a\u003e - 2026-01-19\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.1\"\u003eCompare with 1.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport manual cross-references in Zensical too (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003ed37d907\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eSupport cross-references in Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003ef43f1ee\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/812\"\u003ePR-812\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.0\"\u003e1.0.0\u003c/a\u003e - 2025-11-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.30.1...1.0.0\"\u003eCompare with 0.30.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.name\u003c/code\u003e: \u003cem\u003eAttribute value was changed\u003c/em\u003e: \u003ccode\u003e''\u003c/code\u003e -\u0026gt; unset\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.domain\u003c/code\u003e: \u003cem\u003eAttribute value was changed\u003c/em\u003e: \u003ccode\u003e''\u003c/code\u003e -\u0026gt; unset\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.fallback_config\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(args)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(kwargs)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(theme)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(custom_templates)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(mdx)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(mdx_config)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(args)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(kwargs)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(config)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eHandlers.get_anchors\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.plugin\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.loggers\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.inventory\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.extension\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.handlers\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated code before v1 (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/de34044a02b45250e215af0f969dca581dfb82c5\"\u003ede34044\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpect Zensical to pass extension configuration instead of loading it again from YAML (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/6b73d5a2f455062ab6c68376c85adce6adc037a3\"\u003e6b73d5a\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpose the Markdown extension, to make mkdocstrings compatible with Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/6de266759b79eb72cddd300e6a0a8576085fae40\"\u003e6de2667\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/4e66617fbe26636f86117c26b2482c21892166fe\"\u003e\u003ccode\u003e4e66617\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e\u003ccode\u003e9f79141\u003c/code\u003e\u003c/a\u003e refactor: Use global instances for handlers and autorefs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/cb8a3c781674b8e23cf0048955d70358d7bab49e\"\u003e\u003ccode\u003ecb8a3c7\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003e\u003ccode\u003ed37d907\u003c/code\u003e\u003c/a\u003e refactor: Support manual cross-references in Zensical too\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/0edd18af00fa5907bb31e8309ecf5ad4309da552\"\u003e\u003ccode\u003e0edd18a\u003c/code\u003e\u003c/a\u003e chore: Clean up after v1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003e\u003ccode\u003ef43f1ee\u003c/code\u003e\u003c/a\u003e refactor: Support cross-references in Zensical\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b6a33e23ba411159253ee44d1b1fa63b9a9a7b7a\"\u003e\u003ccode\u003eb6a33e2\u003c/code\u003e\u003c/a\u003e chore: Update sponsors section in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/afefc0fbccc09f7b6f0c92cf3446434d241f1658\"\u003e\u003ccode\u003eafefc0f\u003c/code\u003e\u003c/a\u003e chore: Fix docs-deploy duty\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/cc54d77f63ecb97c4bcc6fb1b447eddad6e842ce\"\u003e\u003ccode\u003ecc54d77\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/68760a9ec55772c8b330b056c2d0896877324b1c\"\u003e\u003ccode\u003e68760a9\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.30.1...1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocstrings-python` from 1.19.0 to 2.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/python/releases\"\u003emkdocstrings-python's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2025-12-03\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't ignore filters when category grouping is disabled (\u003ca href=\"https://github.com/mkdocstrings/python/commit/63aa1b0af0d14912ebf83a4e3c2cd0c7f2a19dae\"\u003e63aa1b0\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/issues/324\"\u003eIssue-324\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLocalize more contents in templates (\u003ca href=\"https://github.com/mkdocstrings/python/commit/854b6a601bd334fe544285aa9eae11482388a583\"\u003e854b6a6\u003c/a\u003e by Zhikang Yan). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/pull/321\"\u003ePR-321\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove ja/zh translations (\u003ca href=\"https://github.com/mkdocstrings/python/commit/b83107c8e86d9650fe4544e569f6da16a46b8472\"\u003eb83107c\u003c/a\u003e by Zhikang Yan). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/pull/322\"\u003ePR-322\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.0\"\u003e2.0.0\u003c/a\u003e - 2025-11-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/1.19.0...2.0.0\"\u003eCompare with 1.19.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated code for v2 (\u003ca href=\"https://github.com/mkdocstrings/python/commit/c10afdb98d590a23c8840c7c0cdd6c358094dc2c\"\u003ec10afdb\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/python/blob/main/CHANGELOG.md\"\u003emkdocstrings-python's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2025-12-03\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't ignore filters when category grouping is disabled (\u003ca href=\"https://github.com/mkdocstrings/python/commit/63aa1b0af0d14912ebf83a4e3c2cd0c7f2a19dae\"\u003e63aa1b0\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/issues/324\"\u003eIssue-324\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLocalize more contents in templates (\u003ca href=\"https://github.com/mkdocstrings/python/commit/854b6a601bd334fe544285aa9eae11482388a583\"\u003e854b6a6\u003c/a\u003e by Zhikang Yan). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/pull/321\"\u003ePR-321\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove ja/zh translations (\u003ca href=\"https://github.com/mkdocstrings/python/commit/b83107c8e86d9650fe4544e569f6da16a46b8472\"\u003eb83107c\u003c/a\u003e by Zhikang Yan). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/pull/322\"\u003ePR-322\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.0\"\u003e2.0.0\u003c/a\u003e - 2025-11-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/1.19.0...2.0.0\"\u003eCompare with 1.19.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated code for v2 (\u003ca href=\"https://github.com/mkdocstrings/python/commit/c10afdb98d590a23c8840c7c0cdd6c358094dc2c\"\u003ec10afdb\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/6e7b971e2174eeba885b61ed0a348a9202ffe5ab\"\u003e\u003ccode\u003e6e7b971\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/854b6a601bd334fe544285aa9eae11482388a583\"\u003e\u003ccode\u003e854b6a6\u003c/code\u003e\u003c/a\u003e refactor: Localize more contents in templates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/b83107c8e86d9650fe4544e569f6da16a46b8472\"\u003e\u003ccode\u003eb83107c\u003c/code\u003e\u003c/a\u003e refactor: Improve ja/zh translations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/63aa1b0af0d14912ebf83a4e3c2cd0c7f2a19dae\"\u003e\u003ccode\u003e63aa1b0\u003c/code\u003e\u003c/a\u003e fix: Don't ignore filters when category grouping is disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/76c08aca4ea57e1d2eda038fee53f3dd5f15e711\"\u003e\u003ccode\u003e76c08ac\u003c/code\u003e\u003c/a\u003e docs: Fix cross-reference\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/50d135aa5621ecd424697f198fb6739a3cf16d44\"\u003e\u003ccode\u003e50d135a\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/2b7db124acddd3505d711cd03d8781fb8e3ba492\"\u003e\u003ccode\u003e2b7db12\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/1a38a243409b3f2ce2989ca2422fe9fe2ea25d2a\"\u003e\u003ccode\u003e1a38a24\u003c/code\u003e\u003c/a\u003e docs: Remove funding banner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/c10afdb98d590a23c8840c7c0cdd6c358094dc2c\"\u003e\u003ccode\u003ec10afdb\u003c/code\u003e\u003c/a\u003e refactor: Remove deprecated code for v2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/b5ef2f3ae1218f7003bbb4a734c3f5ef00d59843\"\u003e\u003ccode\u003eb5ef2f3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:mkdocstrings/python\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/python/compare/1.19.0...2.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `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 `pymdown-extensions` from 10.20 to 10.20.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.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 `pytest` from 8.4.2 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://red...\n\n_Description has been truncated_","html_url":"https://github.com/tektronix/tm_data_types/pull/148","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tektronix%2Ftm_data_types/issues/148","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/148/packages"},{"uuid":"3853852454","node_id":"PR_kwDOMFeY886_Qqr9","number":147,"state":"open","title":"python-deps(deps): bump the python-dependencies group across 1 directory with 14 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["dependabot[bot]"],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-25T21:02:12.000Z","updated_at":"2026-01-25T23:00:41.983Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"python-deps(deps): bump","group_name":"python-dependencies","update_count":14,"packages":[{"name":"black","old_version":"25.12.0","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"mkdocs-gen-files","old_version":"0.5.0","new_version":"0.6.0","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-include-markdown-plugin","old_version":"7.2.0","new_version":"7.2.1","repository_url":"https://github.com/mondeja/mkdocs-include-markdown-plugin"},{"name":"mkdocstrings","old_version":"0.30.1","new_version":"1.0.2","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"mkdocstrings-python","old_version":"1.19.0","new_version":"2.0.1","repository_url":"https://github.com/mkdocstrings/python"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pymdown-extensions","old_version":"10.20","new_version":"10.20.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"coverage","old_version":"7.13.1","new_version":"7.13.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [pylint](https://github.com/pylint-dev/pylint), [pyright](https://github.com/RobertCraigie/pyright-python), [wheel](https://github.com/pypa/wheel), [black](https://github.com/psf/black), [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files), [mkdocs-include-markdown-plugin](https://github.com/mondeja/mkdocs-include-markdown-plugin), [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings), [mkdocstrings-python](https://github.com/mkdocstrings/python), [packaging](https://github.com/pypa/packaging), [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions), [coverage](https://github.com/coveragepy/coveragepy), [pytest](https://github.com/pytest-dev/pytest), [markdown](https://github.com/Python-Markdown/markdown) and [coverage[toml]](https://github.com/coveragepy/coveragepy) to permit the latest version.\nUpdates `pylint` to 4.0.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/e16f942166511d6fb4427e503a734152fae0c4fe\"\u003e\u003ccode\u003ee16f942\u003c/code\u003e\u003c/a\u003e Bump pylint to 4.0.4, update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/657b386c0a83202faa95c9a525b8feb80a4c11ab\"\u003e\u003ccode\u003e657b386\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] [invalid-name] Fix FP for exclusive assignment o...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/03f8a922a2eabe5b517457807cc992e122dcc9c0\"\u003e\u003ccode\u003e03f8a92\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] fix: avoid false positive when module-level name...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/84b6552b86e210097ac29de7ef64b152efb4a454\"\u003e\u003ccode\u003e84b6552\u003c/code\u003e\u003c/a\u003e Bump pylint to 4.0.3, update changelog (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10741\"\u003e#10741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/77b0cd8c0e40eb563ab96067be6bdb3e9e266f1e\"\u003e\u003ccode\u003e77b0cd8\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] fix(expand_modules): pass ignore_list to modutil...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/755f2d0327809a5b358b99ad7fc67a7a5a2faad0\"\u003e\u003ccode\u003e755f2d0\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Upgrade astroid to 4.0.2 (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10733\"\u003e#10733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/c96a9e4d232abcfa1d7f449839b68337816305e9\"\u003e\u003ccode\u003ec96a9e4\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix crash when a variable annotation is used as ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/108191ebbcd9dc8fa9e3fb71c83fd247d2f6ccd1\"\u003e\u003ccode\u003e108191e\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix a false positive for class attribute typed w...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/0ed81725382db48ac0061c96c1948f42fe75f85d\"\u003e\u003ccode\u003e0ed8172\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix crash when a \u003ccode\u003eslice\u003c/code\u003e object is called (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10728\"\u003e#10728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/b128b7d909bf541b2978d84bfe5ed4f4d67210e5\"\u003e\u003ccode\u003eb128b7d\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix a false positive for ``unbalanced-tuple-unpa...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pylint-dev/pylint/compare/v3.3.8...v4.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` to 1.1.408\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/81b795a41ddcc3c77218d8c8e406983e39852285\"\u003e\u003ccode\u003e81b795a\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.408 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/53e8efb4638daca6c541d18ad35dafb0e5d9f34d\"\u003e\u003ccode\u003e53e8efb\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.407 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/1d515b71299f9dc4c066ce37e673d93bda4bc2df\"\u003e\u003ccode\u003e1d515b7\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.406 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.405...v1.1.408\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `wheel` to 0.46.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/releases\"\u003ewheel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.46.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eImportError: cannot import name '_setuptools_logging' from 'wheel'\u003c/code\u003e when installed alongside an old version of setuptools and running the \u003ccode\u003ebdist_wheel\u003c/code\u003e command (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/676\"\u003e#676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/blob/main/docs/news.rst\"\u003ewheel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease Notes\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.3 (2026-01-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eImportError: cannot import name '_setuptools_logging' from 'wheel'\u003c/code\u003e when\ninstalled alongside an old version of setuptools and running the \u003ccode\u003ebdist_wheel\u003c/code\u003e\ncommand (\u003ccode\u003e[#676](https://github.com/pypa/wheel/issues/676) \u0026lt;https://github.com/pypa/wheel/issues/676\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.2 (2026-01-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestored the \u003ccode\u003ebdist_wheel\u003c/code\u003e command for compatibility with \u003ccode\u003esetuptools\u003c/code\u003e older than\nv70.1\u003c/li\u003e\n\u003cli\u003eImporting \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e instead of a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel unpack\u003c/code\u003e potentially altering the permissions of files outside of the\ndestination tree with maliciously crafted wheels (CVE-2026-24049)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.1 (2025-04-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTemporarily restored the \u003ccode\u003ewheel.macosx_libfile\u003c/code\u003e module\n(\u003ccode\u003e[#659](https://github.com/pypa/wheel/issues/659) \u0026lt;https://github.com/pypa/wheel/issues/659\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.0 (2025-04-03)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003ebdist_wheel\u003c/code\u003e setuptools command implementation and entry point.\nThe \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e module is now just an alias to\n\u003ccode\u003esetuptools.command.bdist_wheel\u003c/code\u003e, emitting a deprecation warning on import.\u003c/li\u003e\n\u003cli\u003eRemoved vendored \u003ccode\u003epackaging\u003c/code\u003e in favor of a run-time dependency on it\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.metadata\u003c/code\u003e module private (with a deprecation warning if it's\nimported\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.cli\u003c/code\u003e package private (no deprecation warning)\u003c/li\u003e\n\u003cli\u003eFixed an exception when calling the \u003ccode\u003econvert\u003c/code\u003e command with an empty description\nfield\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.1 (2024-11-23)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed pure Python wheels converted from eggs and wininst files having the ABI tag in\nthe file name\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.0 (2024-11-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRefactored the \u003ccode\u003econvert\u003c/code\u003e command to not need setuptools to be installed\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't configure setuptools logging unless running \u003ccode\u003ebdist_wheel\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a redirection from \u003ccode\u003ewheel.bdist_wheel.bdist_wheel\u003c/code\u003e to\n\u003ccode\u003esetuptools.command.bdist_wheel.bdist_wheel\u003c/code\u003e to improve compatibility with\n\u003ccode\u003esetuptools\u003c/code\u003e' latest fixes.\u003c/p\u003e\n\u003cp\u003eProjects are still advised to migrate away from the deprecated  module and import\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/pypa/wheel/commit/8b6fa740a7101edacb42b0f8e83a1b659ff61033\"\u003e\u003ccode\u003e8b6fa74\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/7445fb5bc13c91052021c40981fb0ec7172880bd\"\u003e\u003ccode\u003e7445fb5\u003c/code\u003e\u003c/a\u003e Fixed an import of a removed module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/eba4036ccaca4e2d0c5b5bf3e3be59b2b2877d6b\"\u003e\u003ccode\u003eeba4036\u003c/code\u003e\u003c/a\u003e Updated the version number for v0.46.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/557fb5425036ccca95330b2c8875e54c9f4483cf\"\u003e\u003ccode\u003e557fb54\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/7a7d2de96b22a9adf9208afcc9547e1001569fef\"\u003e\u003ccode\u003e7a7d2de\u003c/code\u003e\u003c/a\u003e Fixed security issue around wheel unpack (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/675\"\u003e#675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/41418fac233d6973ea8798d620df4aa5b3aa1b66\"\u003e\u003ccode\u003e41418fa\u003c/code\u003e\u003c/a\u003e Fixed test failures due to metadata normalization changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/c1d442bec6c634fcfb89e5d58698dd226685bd14\"\u003e\u003ccode\u003ec1d442b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/674\"\u003e#674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/0bac8820ec90b1aaa0695d79a56563137b48686d\"\u003e\u003ccode\u003e0bac882\u003c/code\u003e\u003c/a\u003e Update github actions environments (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/673\"\u003e#673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/be9f45b4ee1210b2a815d2eefea56b71efd99d63\"\u003e\u003ccode\u003ebe9f45b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/667\"\u003e#667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/6244f08bb92d7569da6c2fbea23de0846ad34ff3\"\u003e\u003ccode\u003e6244f08\u003c/code\u003e\u003c/a\u003e Update pre-commit ruff legacy alias (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/668\"\u003e#668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/wheel/compare/0.45.0...0.46.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 25.12.0 to 26.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \u003ccode\u003eas\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\nmatching subdirectories (like the previous behavior did), and not just matching root\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \u003ccode\u003eas\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6305bf1ae645ab7541be4f5028a86239316178eb\"\u003e\u003ccode\u003e6305bf1\u003c/code\u003e\u003c/a\u003e Prepare 2026.1.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e71305bee302f7f9016b228361e5ae69669dca7b\"\u003e\u003ccode\u003ee71305b\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.3.0 to 3.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4961\"\u003e#4961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/21a2a8c2b1d0c8d47bc00cc59591470f6a9e2307\"\u003e\u003ccode\u003e21a2a8c\u003c/code\u003e\u003c/a\u003e Fix Shutdown multiprocessing Manager in schedule_formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4952\"\u003e#4952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e3146cea4245fcee29d007cb45d9faaf63271586\"\u003e\u003ccode\u003ee3146ce\u003c/code\u003e\u003c/a\u003e Bump docker/setup-buildx-action from 3.11.1 to 3.12.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4919\"\u003e#4919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/fe1fbc4fdfa03fa1d460f975b8aca77e4b4f1a4a\"\u003e\u003ccode\u003efe1fbc4\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4923\"\u003e#4923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b4b7fcfe00bb0d99322e07e87fc2f0992f7a4d8\"\u003e\u003ccode\u003e2b4b7fc\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4922\"\u003e#4922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d745be69bfa9d85ec2ef6e5f9b7ec7e253b5e8ab\"\u003e\u003ccode\u003ed745be6\u003c/code\u003e\u003c/a\u003e docs: document --force-exclude for pre-commit workflows (\u003ca href=\"https://redirect.github.com/psf/black/issues/4957\"\u003e#4957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b41acd6ebbe76e18b49286166924f73f01c3fd02\"\u003e\u003ccode\u003eb41acd6\u003c/code\u003e\u003c/a\u003e Various CI and doc refactors (\u003ca href=\"https://redirect.github.com/psf/black/issues/4928\"\u003e#4928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6f43612766da4a2f275b575af0802c3e73b6ed83\"\u003e\u003ccode\u003e6f43612\u003c/code\u003e\u003c/a\u003e Handle pathspec v1 changes (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/200c550aff44372f801a6d826a361cb26f45a504\"\u003e\u003ccode\u003e200c550\u003c/code\u003e\u003c/a\u003e Bump furo from 2025.9.25 to 2025.12.19 in /docs (\u003ca href=\"https://redirect.github.com/psf/black/issues/4933\"\u003e#4933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.12.0...26.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.5.0 to 0.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompatibility with MkDocs 1.6 is improved - generated files don't have to have an \u003ccode\u003eabs_src_path\u003c/code\u003e - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThere was a bug: using \u003ccode\u003eedit_uri_template\u003c/code\u003e in MkDocs would prevent \u003ccode\u003eset_edit_path()\u003c/code\u003e from working.\nThis is now fixed - \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/37\"\u003e#37\u003c/a\u003e - thanks to \u003ca href=\"https://github.com/frankkusters\"\u003e\u003ccode\u003e@​frankkusters\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe MkDocs configuration file now can be \u003ccode\u003emkdocs.yaml\u003c/code\u003e, not only \u003ccode\u003emkdocs.yml\u003c/code\u003e. Thanks to \u003ca href=\"https://github.com/mgor\"\u003e\u003ccode\u003e@​mgor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/39\"\u003eoprypin/mkdocs-gen-files#39\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMkDocs 1.4.1 is now the lowest supported version -  \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.9 is now the lowest supported version.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ca href=\"https://oprypin.github.io/mkdocs-gen-files/extras.html#programmatically-generating-the-navigation\"\u003enav generator\u003c/a\u003e can support empty paths - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.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/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/1a822d9e0d376d8ecae95fb961144a5af4887ef1\"\u003e\u003ccode\u003e1a822d9\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003e\u003ccode\u003e7baa032\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/6fd0fe048ebf928763458d8dba1a476ca2196117\"\u003e\u003ccode\u003e6fd0fe0\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-include-markdown-plugin` from 7.2.0 to 7.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/releases\"\u003emkdocs-include-markdown-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.2.1\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize string concatenation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/39df60911e5a5da6cd0cdace89cead96c79636bc\"\u003e\u003ccode\u003e39df609\u003c/code\u003e\u003c/a\u003e Optimize string concatenation across multiple files (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/39fb543b070d00114b2ec72d6373499b74092066\"\u003e\u003ccode\u003e39fb543\u003c/code\u003e\u003c/a\u003e docs(license): update copyright year(s) (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/6fd647f159f346e002e14c175f0b8ea6e67f8144\"\u003e\u003ccode\u003e6fd647f\u003c/code\u003e\u003c/a\u003e Document that filesystem order allows reverse (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/32978ca56cbc343feda9d7e0e448162b272e7f5b\"\u003e\u003ccode\u003e32978ca\u003c/code\u003e\u003c/a\u003e Deduplicate common arguments in documentation (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/compare/v7.2.0...v7.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocstrings` from 0.30.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.2\"\u003e1.0.2\u003c/a\u003e - 2026-01-24\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.1...1.0.2\"\u003eCompare with 1.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse global instances for handlers and autorefs (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e9f79141\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.1\"\u003e1.0.1\u003c/a\u003e - 2026-01-19\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.1\"\u003eCompare with 1.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport manual cross-references in Zensical too (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003ed37d907\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eSupport cross-references in Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003ef43f1ee\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/812\"\u003ePR-812\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.0\"\u003e1.0.0\u003c/a\u003e - 2025-11-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.30.1...1.0.0\"\u003eCompare with 0.30.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.name\u003c/code\u003e: \u003cem\u003eAttribute value was changed\u003c/em\u003e: \u003ccode\u003e''\u003c/code\u003e -\u0026gt; unset\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.domain\u003c/code\u003e: \u003cem\u003eAttribute value was changed\u003c/em\u003e: \u003ccode\u003e''\u003c/code\u003e -\u0026gt; unset\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.fallback_config\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(args)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(kwargs)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(theme)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(custom_templates)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(mdx)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(mdx_config)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(args)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(kwargs)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(config)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eHandlers.get_anchors\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.plugin\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.loggers\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.inventory\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.extension\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.handlers\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated code before v1 (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/de34044a02b45250e215af0f969dca581dfb82c5\"\u003ede34044\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpect Zensical to pass extension configuration instead of loading it again from YAML (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/6b73d5a2f455062ab6c68376c85adce6adc037a3\"\u003e6b73d5a\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpose the Markdown extension, to make mkdocstrings compatible with Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/6de266759b79eb72cddd300e6a0a8576085fae40\"\u003e6de2667\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.2\"\u003e1.0.2\u003c/a\u003e - 2026-01-24\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.1...1.0.2\"\u003eCompare with 1.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse global instances for handlers and autorefs (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e9f79141\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.1\"\u003e1.0.1\u003c/a\u003e - 2026-01-19\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.1\"\u003eCompare with 1.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport manual cross-references in Zensical too (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003ed37d907\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eSupport cross-references in Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003ef43f1ee\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/812\"\u003ePR-812\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.0\"\u003e1.0.0\u003c/a\u003e - 2025-11-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.30.1...1.0.0\"\u003eCompare with 0.30.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.name\u003c/code\u003e: \u003cem\u003eAttribute value was changed\u003c/em\u003e: \u003ccode\u003e''\u003c/code\u003e -\u0026gt; unset\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.domain\u003c/code\u003e: \u003cem\u003eAttribute value was changed\u003c/em\u003e: \u003ccode\u003e''\u003c/code\u003e -\u0026gt; unset\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.fallback_config\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(args)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(kwargs)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(theme)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(custom_templates)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(mdx)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(mdx_config)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(args)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(kwargs)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(config)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eHandlers.get_anchors\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.plugin\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.loggers\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.inventory\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.extension\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.handlers\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated code before v1 (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/de34044a02b45250e215af0f969dca581dfb82c5\"\u003ede34044\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpect Zensical to pass extension configuration instead of loading it again from YAML (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/6b73d5a2f455062ab6c68376c85adce6adc037a3\"\u003e6b73d5a\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpose the Markdown extension, to make mkdocstrings compatible with Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/6de266759b79eb72cddd300e6a0a8576085fae40\"\u003e6de2667\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/4e66617fbe26636f86117c26b2482c21892166fe\"\u003e\u003ccode\u003e4e66617\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e\u003ccode\u003e9f79141\u003c/code\u003e\u003c/a\u003e refactor: Use global instances for handlers and autorefs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/cb8a3c781674b8e23cf0048955d70358d7bab49e\"\u003e\u003ccode\u003ecb8a3c7\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003e\u003ccode\u003ed37d907\u003c/code\u003e\u003c/a\u003e refactor: Support manual cross-references in Zensical too\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/0edd18af00fa5907bb31e8309ecf5ad4309da552\"\u003e\u003ccode\u003e0edd18a\u003c/code\u003e\u003c/a\u003e chore: Clean up after v1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003e\u003ccode\u003ef43f1ee\u003c/code\u003e\u003c/a\u003e refactor: Support cross-references in Zensical\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b6a33e23ba411159253ee44d1b1fa63b9a9a7b7a\"\u003e\u003ccode\u003eb6a33e2\u003c/code\u003e\u003c/a\u003e chore: Update sponsors section in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/afefc0fbccc09f7b6f0c92cf3446434d241f1658\"\u003e\u003ccode\u003eafefc0f\u003c/code\u003e\u003c/a\u003e chore: Fix docs-deploy duty\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/cc54d77f63ecb97c4bcc6fb1b447eddad6e842ce\"\u003e\u003ccode\u003ecc54d77\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/68760a9ec55772c8b330b056c2d0896877324b1c\"\u003e\u003ccode\u003e68760a9\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.30.1...1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocstrings-python` from 1.19.0 to 2.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/python/releases\"\u003emkdocstrings-python's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2025-12-03\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't ignore filters when category grouping is disabled (\u003ca href=\"https://github.com/mkdocstrings/python/commit/63aa1b0af0d14912ebf83a4e3c2cd0c7f2a19dae\"\u003e63aa1b0\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/issues/324\"\u003eIssue-324\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLocalize more contents in templates (\u003ca href=\"https://github.com/mkdocstrings/python/commit/854b6a601bd334fe544285aa9eae11482388a583\"\u003e854b6a6\u003c/a\u003e by Zhikang Yan). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/pull/321\"\u003ePR-321\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove ja/zh translations (\u003ca href=\"https://github.com/mkdocstrings/python/commit/b83107c8e86d9650fe4544e569f6da16a46b8472\"\u003eb83107c\u003c/a\u003e by Zhikang Yan). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/pull/322\"\u003ePR-322\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.0\"\u003e2.0.0\u003c/a\u003e - 2025-11-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/1.19.0...2.0.0\"\u003eCompare with 1.19.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated code for v2 (\u003ca href=\"https://github.com/mkdocstrings/python/commit/c10afdb98d590a23c8840c7c0cdd6c358094dc2c\"\u003ec10afdb\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/python/blob/main/CHANGELOG.md\"\u003emkdocstrings-python's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2025-12-03\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't ignore filters when category grouping is disabled (\u003ca href=\"https://github.com/mkdocstrings/python/commit/63aa1b0af0d14912ebf83a4e3c2cd0c7f2a19dae\"\u003e63aa1b0\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/issues/324\"\u003eIssue-324\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLocalize more contents in templates (\u003ca href=\"https://github.com/mkdocstrings/python/commit/854b6a601bd334fe544285aa9eae11482388a583\"\u003e854b6a6\u003c/a\u003e by Zhikang Yan). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/pull/321\"\u003ePR-321\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove ja/zh translations (\u003ca href=\"https://github.com/mkdocstrings/python/commit/b83107c8e86d9650fe4544e569f6da16a46b8472\"\u003eb83107c\u003c/a\u003e by Zhikang Yan). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/pull/322\"\u003ePR-322\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.0\"\u003e2.0.0\u003c/a\u003e - 2025-11-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/1.19.0...2.0.0\"\u003eCompare with 1.19.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated code for v2 (\u003ca href=\"https://github.com/mkdocstrings/python/commit/c10afdb98d590a23c8840c7c0cdd6c358094dc2c\"\u003ec10afdb\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/6e7b971e2174eeba885b61ed0a348a9202ffe5ab\"\u003e\u003ccode\u003e6e7b971\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/854b6a601bd334fe544285aa9eae11482388a583\"\u003e\u003ccode\u003e854b6a6\u003c/code\u003e\u003c/a\u003e refactor: Localize more contents in templates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/b83107c8e86d9650fe4544e569f6da16a46b8472\"\u003e\u003ccode\u003eb83107c\u003c/code\u003e\u003c/a\u003e refactor: Improve ja/zh translations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/63aa1b0af0d14912ebf83a4e3c2cd0c7f2a19dae\"\u003e\u003ccode\u003e63aa1b0\u003c/code\u003e\u003c/a\u003e fix: Don't ignore filters when category grouping is disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/76c08aca4ea57e1d2eda038fee53f3dd5f15e711\"\u003e\u003ccode\u003e76c08ac\u003c/code\u003e\u003c/a\u003e docs: Fix cross-reference\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/50d135aa5621ecd424697f198fb6739a3cf16d44\"\u003e\u003ccode\u003e50d135a\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/2b7db124acddd3505d711cd03d8781fb8e3ba492\"\u003e\u003ccode\u003e2b7db12\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/1a38a243409b3f2ce2989ca2422fe9fe2ea25d2a\"\u003e\u003ccode\u003e1a38a24\u003c/code\u003e\u003c/a\u003e docs: Remove funding banner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/c10afdb98d590a23c8840c7c0cdd6c358094dc2c\"\u003e\u003ccode\u003ec10afdb\u003c/code\u003e\u003c/a\u003e refactor: Remove deprecated code for v2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/b5ef2f3ae1218f7003bbb4a734c3f5ef00d59843\"\u003e\u003ccode\u003eb5ef2f3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:mkdocstrings/python\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/python/compare/1.19.0...2.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `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 `pymdown-extensions` from 10.20 to 10.20.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.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 `pytest` from 8.4.2 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#...\n\n_Description has been truncated_","html_url":"https://github.com/tektronix/tm_data_types/pull/147","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tektronix%2Ftm_data_types/issues/147","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/147/packages"},{"uuid":"3852009129","node_id":"PR_kwDOQp5_d86_K_Kn","number":8,"state":"closed","title":"Bump the dev-tools group with 6 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-14T20:26:51.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-24T20:30:08.000Z","updated_at":"2026-02-14T20:26:53.000Z","time_to_close":1814203,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dev-tools","update_count":6,"packages":[{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-asyncio","old_version":"0.23.8","new_version":"0.23.3","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"ruff","old_version":"0.14.13","new_version":"0.14.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mkdocstrings","old_version":"1.0.0","new_version":"1.0.2","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"mkdocs-gen-files","old_version":"0.5.0","new_version":"0.6.0","repository_url":"https://github.com/oprypin/mkdocs-gen-files"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-tools group with 6 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.23.8` | `0.23.3` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.13` | `0.14.14` |\n| [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) | `1.0.0` | `1.0.2` |\n| [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) | `0.5.0` | `0.6.0` |\n\nUpdates `pytest` from 8.4.2 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 4.1.0 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\u003ch2\u003e6.2.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a version requirement for pytest's pluggy dependency (1.2.0, released 2023-06-21) that has the required new-style hookwrapper API.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved deprecated license classifier (packaging).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDisabled coverage warnings in two more situations where they have no value:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026quot;module-not-measured\u0026quot; in workers\u003c/li\u003e\n\u003cli\u003e\u0026quot;already-imported\u0026quot; in subprocesses\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.0 (2025-06-11)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe plugin now adds 3 rules in the filter warnings configuration to prevent common coverage warnings being raised as obscure errors::\u003c/p\u003e\n\u003cp\u003edefault:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\nonce::PytestCovWarning\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-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/v4.1.0...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 0.23.8 to 0.23.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/260b79185b198bad96a8fb2abc607a91ad8a5490\"\u003e\u003ccode\u003e260b791\u003c/code\u003e\u003c/a\u003e [docs] Prepare release of v0.23.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/6a253e20fb174b6750075a6cfdd9409e4c6221f5\"\u003e\u003ccode\u003e6a253e2\u003c/code\u003e\u003c/a\u003e [docs] Shorten changelog by combining multiple issues.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/e2cbb906c5124df131abe39c447c5486aae913be\"\u003e\u003ccode\u003ee2cbb90\u003c/code\u003e\u003c/a\u003e [docs] Mention correct issue in changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/0c522bff1525e77ff75691ee7530c71fe63e2775\"\u003e\u003ccode\u003e0c522bf\u003c/code\u003e\u003c/a\u003e [fix] Fixes a bug that caused an internal pytest error when using ImportWarni...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/31c7e6f9acda156a7aabf23d18e88c23f5f897a4\"\u003e\u003ccode\u003e31c7e6f\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.3.3 to 7.3.4 in /dependencies/default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/38d5c7eed0d5193752043631aabde287d0627127\"\u003e\u003ccode\u003e38d5c7e\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sphinx-rtd-theme in /dependencies/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/650ec5875dcefc4eb4c1b2b0ba792aa643cd0823\"\u003e\u003ccode\u003e650ec58\u003c/code\u003e\u003c/a\u003e Build(deps): Bump babel from 2.13.1 to 2.14.0 in /dependencies/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/0166a7e55fd5ac31afdaffd7dd54e77003f6cc30\"\u003e\u003ccode\u003e0166a7e\u003c/code\u003e\u003c/a\u003e Build(deps): Bump typing-extensions in /dependencies/default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/3a15f3039c2b0101b73af651e8b9c667b1a51434\"\u003e\u003ccode\u003e3a15f30\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.3.2 to 7.3.3 in /dependencies/default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/28e91f00cd59d8aca364e6041f898cde8239b4e6\"\u003e\u003ccode\u003e28e91f0\u003c/code\u003e\u003c/a\u003e Build(deps): Bump hypothesis in /dependencies/default\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v0.23.8...v0.23.3\"\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.13 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.13...0.14.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocstrings` from 1.0.0 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.2\"\u003e1.0.2\u003c/a\u003e - 2026-01-24\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.1...1.0.2\"\u003eCompare with 1.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse global instances for handlers and autorefs (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e9f79141\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.1\"\u003e1.0.1\u003c/a\u003e - 2026-01-19\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.1\"\u003eCompare with 1.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport manual cross-references in Zensical too (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003ed37d907\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eSupport cross-references in Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003ef43f1ee\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/812\"\u003ePR-812\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/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.2\"\u003e1.0.2\u003c/a\u003e - 2026-01-24\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.1...1.0.2\"\u003eCompare with 1.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse global instances for handlers and autorefs (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e9f79141\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.1\"\u003e1.0.1\u003c/a\u003e - 2026-01-19\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.1\"\u003eCompare with 1.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport manual cross-references in Zensical too (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003ed37d907\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eSupport cross-references in Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003ef43f1ee\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/812\"\u003ePR-812\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/mkdocstrings/mkdocstrings/commit/4e66617fbe26636f86117c26b2482c21892166fe\"\u003e\u003ccode\u003e4e66617\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e\u003ccode\u003e9f79141\u003c/code\u003e\u003c/a\u003e refactor: Use global instances for handlers and autorefs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/cb8a3c781674b8e23cf0048955d70358d7bab49e\"\u003e\u003ccode\u003ecb8a3c7\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003e\u003ccode\u003ed37d907\u003c/code\u003e\u003c/a\u003e refactor: Support manual cross-references in Zensical too\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/0edd18af00fa5907bb31e8309ecf5ad4309da552\"\u003e\u003ccode\u003e0edd18a\u003c/code\u003e\u003c/a\u003e chore: Clean up after v1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003e\u003ccode\u003ef43f1ee\u003c/code\u003e\u003c/a\u003e refactor: Support cross-references in Zensical\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b6a33e23ba411159253ee44d1b1fa63b9a9a7b7a\"\u003e\u003ccode\u003eb6a33e2\u003c/code\u003e\u003c/a\u003e chore: Update sponsors section in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/afefc0fbccc09f7b6f0c92cf3446434d241f1658\"\u003e\u003ccode\u003eafefc0f\u003c/code\u003e\u003c/a\u003e chore: Fix docs-deploy duty\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/cc54d77f63ecb97c4bcc6fb1b447eddad6e842ce\"\u003e\u003ccode\u003ecc54d77\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.5.0 to 0.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompatibility with MkDocs 1.6 is improved - generated files don't have to have an \u003ccode\u003eabs_src_path\u003c/code\u003e - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThere was a bug: using \u003ccode\u003eedit_uri_template\u003c/code\u003e in MkDocs would prevent \u003ccode\u003eset_edit_path()\u003c/code\u003e from working.\nThis is now fixed - \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/37\"\u003e#37\u003c/a\u003e - thanks to \u003ca href=\"https://github.com/frankkusters\"\u003e\u003ccode\u003e@​frankkusters\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe MkDocs configuration file now can be \u003ccode\u003emkdocs.yaml\u003c/code\u003e, not only \u003ccode\u003emkdocs.yml\u003c/code\u003e. Thanks to \u003ca href=\"https://github.com/mgor\"\u003e\u003ccode\u003e@​mgor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/39\"\u003eoprypin/mkdocs-gen-files#39\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMkDocs 1.4.1 is now the lowest supported version -  \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.9 is now the lowest supported version.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ca href=\"https://oprypin.github.io/mkdocs-gen-files/extras.html#programmatically-generating-the-navigation\"\u003enav generator\u003c/a\u003e can support empty paths - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.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/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/1a822d9e0d376d8ecae95fb961144a5af4887ef1\"\u003e\u003ccode\u003e1a822d9\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003e\u003ccode\u003e7baa032\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/6fd0fe048ebf928763458d8dba1a476ca2196117\"\u003e\u003ccode\u003e6fd0fe0\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.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/vittoriomussin/agent-cover/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vittoriomussin%2Fagent-cover/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"},{"uuid":"3806974857","node_id":"PR_kwDOMFeY88681YFA","number":142,"state":"open","title":"python-deps(deps): bump the python-dependencies group across 1 directory with 20 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["dependabot[bot]"],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-13T03:57:33.000Z","updated_at":"2026-01-13T05:15:14.589Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"python-deps(deps): bump","group_name":"python-dependencies","update_count":20,"packages":[{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"black","old_version":"25.9.0","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"mkdocs-gen-files","old_version":"0.5.0","new_version":"0.6.0","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-macros-plugin","old_version":"1.4.0","new_version":"1.5.0","repository_url":"https://github.com/fralau/mkdocs_macros_plugin"},{"name":"mkdocs-mermaid2-plugin","old_version":"1.2.2","new_version":"1.2.3","repository_url":"https://github.com/fralau/mkdocs-mermaid2-plugin"},{"name":"pymdown-extensions","old_version":"10.16.1","new_version":"10.20","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"beautifulsoup4","old_version":"4.14.2","new_version":"4.14.3"},{"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":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"importlib-metadata","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"pathspec","old_version":"0.12.1","new_version":"1.0.3","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"pytokens","old_version":"0.1.10","new_version":"0.3.0","repository_url":"https://github.com/tusharsadhwani/pytokens"},{"name":"soupsieve","old_version":"2.8","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"super-collections","old_version":"0.6.0","new_version":"0.6.2","repository_url":"https://github.com/fralau/super-collections"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [nodeenv](https://github.com/ekalinin/nodeenv), [pylint](https://github.com/pylint-dev/pylint), [pyright](https://github.com/RobertCraigie/pyright-python), [black](https://github.com/psf/black), [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files), [mkdocs-macros-plugin](https://github.com/fralau/mkdocs_macros_plugin), [mkdocs-mermaid2-plugin](https://github.com/fralau/mkdocs-mermaid2-plugin), [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions), [tomli](https://github.com/hukkin/tomli), [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/), [certifi](https://github.com/certifi/python-certifi), [charset-normalizer](https://github.com/jawah/charset_normalizer), [idna](https://github.com/kjd/idna), [importlib-metadata](https://github.com/python/importlib_metadata), [pathspec](https://github.com/cpburnz/python-pathspec), [pytokens](https://github.com/tusharsadhwani/pytokens), [soupsieve](https://github.com/facelessuser/soupsieve), [super-collections](https://github.com/fralau/super-collections), [urllib3](https://github.com/urllib3/urllib3) and [exceptiongroup](https://github.com/agronholm/exceptiongroup) to permit the latest version.\nUpdates `nodeenv` from 1.9.1 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ekalinin/nodeenv/releases\"\u003enodeenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.10.0 - drop\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixed bugs 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse lowercase lookup for archmap by \u003ca href=\"https://github.com/robmoss2k\"\u003e\u003ccode\u003e@​robmoss2k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/382\"\u003eekalinin/nodeenv#382\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/367\"\u003eekalinin/nodeenv#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd UV Virtual Environment support by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/386\"\u003eekalinin/nodeenv#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sh instead of bash by \u003ca href=\"https://github.com/WhyNotHugo\"\u003e\u003ccode\u003e@​WhyNotHugo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/389\"\u003eekalinin/nodeenv#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace additional use of \u003ccode\u003ewhich(1)\u003c/code\u003e with \u003ccode\u003eshutil.which()\u003c/code\u003e by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/355\"\u003eekalinin/nodeenv#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport leading \u003ccode\u003ev\u003c/code\u003e in \u003ccode\u003e.node-version\u003c/code\u003e by \u003ca href=\"https://github.com/nix6839\"\u003e\u003ccode\u003e@​nix6839\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/359\"\u003eekalinin/nodeenv#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck host platform when finding \u003ccode\u003enode\u003c/code\u003e version by \u003ca href=\"https://github.com/max0x53\"\u003e\u003ccode\u003e@​max0x53\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/363\"\u003eekalinin/nodeenv#363\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/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/367\"\u003eekalinin/nodeenv#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nix6839\"\u003e\u003ccode\u003e@​nix6839\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/359\"\u003eekalinin/nodeenv#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/max0x53\"\u003e\u003ccode\u003e@​max0x53\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/363\"\u003eekalinin/nodeenv#363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robmoss2k\"\u003e\u003ccode\u003e@​robmoss2k\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/382\"\u003eekalinin/nodeenv#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/386\"\u003eekalinin/nodeenv#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/WhyNotHugo\"\u003e\u003ccode\u003e@​WhyNotHugo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/389\"\u003eekalinin/nodeenv#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/355\"\u003eekalinin/nodeenv#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.0\"\u003ehttps://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.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/ekalinin/nodeenv/commit/9dee547f5e45c9d1b155e4351d165f2b504ae281\"\u003e\u003ccode\u003e9dee547\u003c/code\u003e\u003c/a\u003e chore: bump nodeenv version to 1.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/d45aabbf54139f5ecbaf9db05d3949d39999136e\"\u003e\u003ccode\u003ed45aabb\u003c/code\u003e\u003c/a\u003e chore: add pyright ignore comments for compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/55d6c21a6d56631c0c1d08a04d3c1ea3531ba832\"\u003e\u003ccode\u003e55d6c21\u003c/code\u003e\u003c/a\u003e chore: update AUTHORS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/5f694e6ac261f29233a28061e4af64669199721e\"\u003e\u003ccode\u003e5f694e6\u003c/code\u003e\u003c/a\u003e test: update test test_node_system_creates_shim\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/fa3fdfb1bf807d869795f5bf690359808cb5c529\"\u003e\u003ccode\u003efa3fdfb\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:ekalinin/nodeenv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/e868dbe29cad74819615d039b78af21bb2ae431d\"\u003e\u003ccode\u003ee868dbe\u003c/code\u003e\u003c/a\u003e Replace additional use of \u003ccode\u003ewhich(1)\u003c/code\u003e with \u003ccode\u003eshutil.which()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/b4cd00d453d9f4772c7c410dfbc57d7e757dad5e\"\u003e\u003ccode\u003eb4cd00d\u003c/code\u003e\u003c/a\u003e test: enhance activation tests for nodeenv with custom prompts and file handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/0b5ea9d55ad72ef30a5a7461e27b95c9453bd833\"\u003e\u003ccode\u003e0b5ea9d\u003c/code\u003e\u003c/a\u003e refactor(tests): improve readability of mock patches in nodeenv tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/37c0c304317b9a5646e1779d38b71c4c6928a0a5\"\u003e\u003ccode\u003e37c0c30\u003c/code\u003e\u003c/a\u003e ci: add GH workflow for testing and coverage in PR\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/326a7a4c1ced11fb3356cdd2c8511f9cdeb81ebc\"\u003e\u003ccode\u003e326a7a4\u003c/code\u003e\u003c/a\u003e test: add comprehensive tests for install_npm and install_npm_win functions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pylint` to 3.3.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/4cab7ca4eae88b75960fcf2479b8ddd377dd4ce2\"\u003e\u003ccode\u003e4cab7ca\u003c/code\u003e\u003c/a\u003e Bump pylint to 3.3.9, update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/81fb483fdeaa343bae73a72dadcf29c2c70ee41e\"\u003e\u003ccode\u003e81fb483\u003c/code\u003e\u003c/a\u003e [Backport maintenance/3.3.x] Extend catching of ValueError to 3.12.5+ (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10611\"\u003e#10611\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/1ef673b1fbfedf5575046376397885c046abd70a\"\u003e\u003ccode\u003e1ef673b\u003c/code\u003e\u003c/a\u003e [Backport maintenance/3.3.x] Fix flagging undeprecated importlib.resources fu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/194790c65856b282389e9754b6a0f4c98f05f9a5\"\u003e\u003ccode\u003e194790c\u003c/code\u003e\u003c/a\u003e Fix invalid refs in 3.3 whatsnew (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10578\"\u003e#10578\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10579\"\u003e#10579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/98238705507065c20bf62eb0ddbe021d44f9b111\"\u003e\u003ccode\u003e9823870\u003c/code\u003e\u003c/a\u003e fix: handle \u003ccode\u003einconsistent-return-statements\u003c/code\u003e false positive with \u003ccode\u003equit()\u003c/code\u003e/`ex...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/16fe1270fecf08a9b79483b9c9954adbe1a9d3e6\"\u003e\u003ccode\u003e16fe127\u003c/code\u003e\u003c/a\u003e fix: handle for-loop variable shadowing correctly (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10569\"\u003e#10569\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10571\"\u003e#10571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/6cf727cbf982f5d75c9a0162bcb493799f15896e\"\u003e\u003ccode\u003e6cf727c\u003c/code\u003e\u003c/a\u003e Add sphinx reference for whatsnew 3.3 (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10564\"\u003e#10564\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10565\"\u003e#10565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/641a316c3c9c9e0c32f5289445344ad6595c7b53\"\u003e\u003ccode\u003e641a316\u003c/code\u003e\u003c/a\u003e Use custom backport action (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10536\"\u003e#10536\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10537\"\u003e#10537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/65efb677aa3b74088c9f35293138ea2435f925a7\"\u003e\u003ccode\u003e65efb67\u003c/code\u003e\u003c/a\u003e [fix] Better approach in 'unnecessary-list-index-lookup' to avoid crashes (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/78444bb70696fbeee3df56f2fb9f36fed89b4971\"\u003e\u003ccode\u003e78444bb\u003c/code\u003e\u003c/a\u003e Fix used-before-assignment for PEP 695 type aliases + parameters (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10488\"\u003e#10488\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pylint-dev/pylint/compare/v3.3.8...v3.3.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` to 1.1.408\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/81b795a41ddcc3c77218d8c8e406983e39852285\"\u003e\u003ccode\u003e81b795a\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.408 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/53e8efb4638daca6c541d18ad35dafb0e5d9f34d\"\u003e\u003ccode\u003e53e8efb\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.407 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/1d515b71299f9dc4c066ce37e673d93bda4bc2df\"\u003e\u003ccode\u003e1d515b7\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.406 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.405...v1.1.408\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 25.9.0 to 25.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where python 3.12 generics syntax split line happens weirdly (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize type comments to form \u003ccode\u003e# type: \u0026lt;value\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e preview feature to respect \u003ccode\u003e# fmt: skip\u003c/code\u003e for compound\nstatements with semicolon-separated bodies (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eno_cache\u003c/code\u003e option to control caching behavior. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4803\"\u003e#4803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Linux binaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4773\"\u003e#4773\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWrite unchanged content to stdout when excluding formatting from stdin using pipes\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented BlackDClient. This simple python client allows to easily send formatting\nrequests to blackd (\u003ca href=\"https://redirect.github.com/psf/black/issues/4774\"\u003e#4774\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable 3.14 base CI (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to support the \u003ccode\u003erequired-version\u003c/code\u003e major-version-only\n\u0026quot;stability\u0026quot; format when using pyproject.toml (\u003ca href=\"https://redirect.github.com/psf/black/issues/4770\"\u003e#4770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for vim plugin users. It now handles independently vim version\u003c/li\u003e\n\u003cli\u003eVim: Warn on unsupported Vim and Python versions independently (\u003ca href=\"https://redirect.github.com/psf/black/issues/4772\"\u003e#4772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Print the import paths when importing black fails (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Fix handling of virtualenvs that have a different Python version (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where python 3.12 generics syntax split line happens weirdly (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize type comments to form \u003ccode\u003e# type: \u0026lt;value\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e preview feature to respect \u003ccode\u003e# fmt: skip\u003c/code\u003e for compound\nstatements with semicolon-separated bodies (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eno_cache\u003c/code\u003e option to control caching behavior. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4803\"\u003e#4803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Linux binaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4773\"\u003e#4773\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWrite unchanged content to stdout when excluding formatting from stdin using pipes\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented BlackDClient. This simple python client allows to easily send formatting\nrequests to blackd (\u003ca href=\"https://redirect.github.com/psf/black/issues/4774\"\u003e#4774\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable 3.14 base CI (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to support the \u003ccode\u003erequired-version\u003c/code\u003e major-version-only\n\u0026quot;stability\u0026quot; format when using pyproject.toml (\u003ca href=\"https://redirect.github.com/psf/black/issues/4770\"\u003e#4770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for vim plugin users. It now handles independently vim version\u003c/li\u003e\n\u003cli\u003eVim: Warn on unsupported Vim and Python versions independently (\u003ca href=\"https://redirect.github.com/psf/black/issues/4772\"\u003e#4772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Print the import paths when importing black fails (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Fix handling of virtualenvs that have a different Python version (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/05f0a8ce1f71fbb36e1e032d3b518c7b945089a2\"\u003e\u003ccode\u003e05f0a8c\u003c/code\u003e\u003c/a\u003e Prepare for 25.11.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4825\"\u003e#4825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ae17c61310e44401ca55d17a9c01db1dc03940a6\"\u003e\u003ccode\u003eae17c61\u003c/code\u003e\u003c/a\u003e Fix tests on pytest 9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4835\"\u003e#4835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/138745eca650aa59ab30458f7b1c026b66608a09\"\u003e\u003ccode\u003e138745e\u003c/code\u003e\u003c/a\u003e Include Windows and Python 3.14 in PR wheel build matrix, fix Windows build (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/18170d6d8d9bdde97d4cd3568cfa8be434a09ff3\"\u003e\u003ccode\u003e18170d6\u003c/code\u003e\u003c/a\u003e ci: add label for running all builds on a pull request (\u003ca href=\"https://redirect.github.com/psf/black/issues/4833\"\u003e#4833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0e793e3d7e0d12dbda1573fa1bb785b1f066ee7c\"\u003e\u003ccode\u003e0e793e3\u003c/code\u003e\u003c/a\u003e fix windows wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4830\"\u003e#4830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b71f36c9fda07930c83e22681e0ec08ddf5a3980\"\u003e\u003ccode\u003eb71f36c\u003c/code\u003e\u003c/a\u003e Use build[uv] as cibuildwheel frontend (\u003ca href=\"https://redirect.github.com/psf/black/issues/4831\"\u003e#4831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a7bd594493bb5cb703beee877a2df40556b0baaa\"\u003e\u003ccode\u003ea7bd594\u003c/code\u003e\u003c/a\u003e Skip free threaded builds in cibuildwheel (\u003ca href=\"https://redirect.github.com/psf/black/issues/4829\"\u003e#4829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/862dee91fa1259ca2bc00f10538b52a4959bdbe8\"\u003e\u003ccode\u003e862dee9\u003c/code\u003e\u003c/a\u003e Update cibuildwheel (\u003ca href=\"https://redirect.github.com/psf/black/issues/4828\"\u003e#4828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b5f354c56627640e0b853af51a51d9262bafa9f0\"\u003e\u003ccode\u003eb5f354c\u003c/code\u003e\u003c/a\u003e build: restrict to pytest 9.0 due to breakage in custom pytest_configure (\u003ca href=\"https://redirect.github.com/psf/black/issues/4827\"\u003e#4827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f705197f57149b79ed83cccf22e4fed19b48a7bf\"\u003e\u003ccode\u003ef705197\u003c/code\u003e\u003c/a\u003e t-string support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.9.0...25.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.5.0 to 0.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompatibility with MkDocs 1.6 is improved - generated files don't have to have an \u003ccode\u003eabs_src_path\u003c/code\u003e - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThere was a bug: using \u003ccode\u003eedit_uri_template\u003c/code\u003e in MkDocs would prevent \u003ccode\u003eset_edit_path()\u003c/code\u003e from working.\nThis is now fixed - \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/37\"\u003e#37\u003c/a\u003e - thanks to \u003ca href=\"https://github.com/frankkusters\"\u003e\u003ccode\u003e@​frankkusters\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe MkDocs configuration file now can be \u003ccode\u003emkdocs.yaml\u003c/code\u003e, not only \u003ccode\u003emkdocs.yml\u003c/code\u003e. Thanks to \u003ca href=\"https://github.com/mgor\"\u003e\u003ccode\u003e@​mgor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/39\"\u003eoprypin/mkdocs-gen-files#39\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMkDocs 1.4.1 is now the lowest supported version -  \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.9 is now the lowest supported version.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ca href=\"https://oprypin.github.io/mkdocs-gen-files/extras.html#programmatically-generating-the-navigation\"\u003enav generator\u003c/a\u003e can support empty paths - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.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/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/1a822d9e0d376d8ecae95fb961144a5af4887ef1\"\u003e\u003ccode\u003e1a822d9\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003e\u003ccode\u003e7baa032\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/6fd0fe048ebf928763458d8dba1a476ca2196117\"\u003e\u003ccode\u003e6fd0fe0\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-macros-plugin` from 1.4.0 to 1.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/blob/master/CHANGELOG.md\"\u003emkdocs-macros-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.0, 2025-11-13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: For each push, testing on github for versions Python 3.8 to 3.12\u003c/li\u003e\n\u003cli\u003eFixed: bug in import of packages when not in source dir (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.1, 2025-10-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: support for j2_extensions paramater in config file (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed: missing dependency declaration on \u003ccode\u003erequests\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/0536f4da1dc643e1fa1f0cc90e71512ada67dc04\"\u003e\u003ccode\u003e0536f4d\u003c/code\u003e\u003c/a\u003e Fix type hint for compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/d9a6bc3aac5b12b86f9e2be7af18e1e9178287f6\"\u003e\u003ccode\u003ed9a6bc3\u003c/code\u003e\u003c/a\u003e Require mkdocs-test\u0026gt;=0.6.0 (compatibility with Python 3.8 and 3.9)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/bcaa72db2820d60822ffba15e87c75669abc7b92\"\u003e\u003ccode\u003ebcaa72d\u003c/code\u003e\u003c/a\u003e Make last minute corrections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/356fc2a5b55d1897a2f2c47856d52b10cff4611c\"\u003e\u003ccode\u003e356fc2a\u003c/code\u003e\u003c/a\u003e Prepare for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/aaf16bdcb9dfcb9c6ea9b6567ea4af7f8c178185\"\u003e\u003ccode\u003eaaf16bd\u003c/code\u003e\u003c/a\u003e Limit testing to 3.10 up (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/ba5356c0c263355556aa82dad0fbfde3cce4bc4d\"\u003e\u003ccode\u003eba5356c\u003c/code\u003e\u003c/a\u003e Use proper exit for pytest if Python \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/6c796600bc0886696ce9b76b84354d7e2bc1b6fa\"\u003e\u003ccode\u003e6c79660\u003c/code\u003e\u003c/a\u003e Skip test_modules.py if Python version \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cec7440d46589b303d741a5e2df0a240c25b9bdb\"\u003e\u003ccode\u003ecec7440\u003c/code\u003e\u003c/a\u003e Test installation of d2 in a cross-platform way (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/492759c5ab3d05f7c55ec62ffdf9573b715ac6ed\"\u003e\u003ccode\u003e492759c\u003c/code\u003e\u003c/a\u003e Update with changes from local repo (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cc5416834a07ffd2ba1fe3d917a701ac6e9c98ad\"\u003e\u003ccode\u003ecc54168\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:fralau/mkdocs_macros_plugin\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fralau/mkdocs_macros_plugin/compare/v1.4.0...v1.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-mermaid2-plugin` from 1.2.2 to 1.2.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/blob/master/CHANGELOG.md\"\u003emkdocs-mermaid2-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.3, 2025-10-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: documented the use of variables and macros with MkDocs-Macros\nin Tips and Tricks (\u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/123\"\u003e#123\u003c/a\u003e); dividing the the page into 3 sections.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/59498d0c537c7dc660cd362fd887464e9ec027ed\"\u003e\u003ccode\u003e59498d0\u003c/code\u003e\u003c/a\u003e Reorganize Tips and Tricks page\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/0304ac52c8a9dd256d899b24101da90aa3e901ae\"\u003e\u003ccode\u003e0304ac5\u003c/code\u003e\u003c/a\u003e Improve documentation of how to use Mkdocs-Macros (\u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/123\"\u003e#123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/d1cf04b27eace33b2004dc1c68f9536cf6d4b397\"\u003e\u003ccode\u003ed1cf04b\u003c/code\u003e\u003c/a\u003e Insert suggestion to use MkDocs-Macros for variables and macros\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/compare/v1.2.2...v1.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymdown-extensions` from 10.16.1 to 10.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/releases\"\u003epymdown-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e10.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Quotes: New blockquotes extension added that uses a more modern approach when compared to Python Markdown's\ndefault. Quotes specifically will not group consecutive blockquotes together in the same lazy fashion that the\ndefault Python Markdown does which follows a more modern trend to how parsers these days handle block quotes.\u003c/p\u003e\n\u003cp\u003eIn addition, Quotes also provides an optional feature to enable specifying callouts/alerts in the style used by\nGitHub and Obsidian.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.19.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Arithmatex: Fix issue where block \u003ccode\u003e$$\u003c/code\u003e math used inline within a paragraph could result in nested math\nparsing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Emoji: Update Twemoji to use Unicode 16.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Critic: Roll back \u003ccode\u003eview\u003c/code\u003e mode deprecation as some still like to use it, though further enhancements to this\nmode are not planned.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Critic: \u003ccode\u003eview\u003c/code\u003e mode has been deprecated. To avoid warnings or future issues, explicitly set \u003ccode\u003emode\u003c/code\u003e to\neither \u003ccode\u003eaccept\u003c/code\u003e or \u003ccode\u003ereject\u003c/code\u003e. In the future, the new default will be \u003ccode\u003eaccept\u003c/code\u003e and the \u003ccode\u003eview\u003c/code\u003e mode will be removed\nentirely.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Block Admonition: \u003ccode\u003eimportant\u003c/code\u003e should have always been available as a default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.17.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Blocks: Blocks extensions will now better handle nesting of indented style Admonitions, Details, and Tabbed\nand other non-conflicting blocks.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.17.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix an issue where Highlight can override another extension in the \u0026quot;registered\u0026quot; list in Python Markdown.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Allow specifying static IDs in caption block headers via \u003ccode\u003e#id\u003c/code\u003e syntax.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/7d5c4be60578aefef323126467576eaff1e5e354\"\u003e\u003ccode\u003e7d5c4be\u003c/code\u003e\u003c/a\u003e Quotes: Add nesting examples, fix some grammar, and add nesting test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/9d5b64ac9b2c52b067951d9d83eefed54173ce23\"\u003e\u003ccode\u003e9d5b64a\u003c/code\u003e\u003c/a\u003e Update notes about the new callouts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/531a77a36150a0dc1c9076271fb399a3ffbf856c\"\u003e\u003ccode\u003e531a77a\u003c/code\u003e\u003c/a\u003e Docs: make line number hover stand out more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/0d7be849125bc2266fe7430f6be85ea467f9b088\"\u003e\u003ccode\u003e0d7be84\u003c/code\u003e\u003c/a\u003e Revert change to line wrapping\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/6f9cb091e6e464951ddcff7978f1b04244089694\"\u003e\u003ccode\u003e6f9cb09\u003c/code\u003e\u003c/a\u003e Wrap lines table format as well and adjust docs theme line highlight\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/97f716600719399d412c616092361001f80329d8\"\u003e\u003ccode\u003e97f7166\u003c/code\u003e\u003c/a\u003e Wrap Pygments lines with \u0026lt;span\u0026gt; to allow for better styling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/ad0d49397f5ea64e8c9714eb56471cb54eecd0a7\"\u003e\u003ccode\u003ead0d493\u003c/code\u003e\u003c/a\u003e Update map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/753ddde120b645e45c71b00214023ed9a3e0a7cd\"\u003e\u003ccode\u003e753ddde\u003c/code\u003e\u003c/a\u003e Tweak admonition colors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/7e686eed2f31ab1a96f90ce1dd919bc68f5794a1\"\u003e\u003ccode\u003e7e686ee\u003c/code\u003e\u003c/a\u003e Docs: Update JS deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/2703d81bc90226e46f7eb61894c4552e9543d69a\"\u003e\u003ccode\u003e2703d81\u003c/code\u003e\u003c/a\u003e Add custom blockquote extension (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/compare/10.16.1...10.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tomli` from 2.2.1 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\u003ch2\u003e2.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eBinary wheels for Python 3.14 (also free-threaded)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePerformance\n\u003cul\u003e\n\u003cli\u003eReduced import time\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.2.1...2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.14.2 to 4.14.3\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 `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 `importlib-metadata` from 8.7.0 to 8.7.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev8.7.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed errors in FastPath under fork-multiprocessing. (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved cruft from Python 3.8. (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/84e9028d39062af975d0659c0e987c28bcc808a5\"\u003e\u003ccode\u003e84e9028\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/36ed6f69888bba8cbabd3963714630ead6bdb762\"\u003e\u003ccode\u003e36ed6f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/521\"\u003e#521\u003c/a\u003e from 2xB/fix520\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/f6eee5671a3e9e1cb56a6d3a6219145c19518713\"\u003e\u003ccode\u003ef6eee56\u003c/code\u003e\u003c/a\u003e Rely on passthrough to designate a wrapper for its side effect.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/3c9510bf848fd4031e76028da0c9f60129047546\"\u003e\u003ccode\u003e3c9510b\u003c/code\u003e\u003c/a\u003e Prefer noop for degenerate behavior.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/a36bab926643dcd67513851d5bebc285ef9ac681\"\u003e\u003ccode\u003ea36bab9\u003c/code\u003e\u003c/a\u003e Avoid if block.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/8dd2937cf852eb0d9ad96d4e45ed3470e80c1463\"\u003e\u003ccode\u003e8dd2937\u003c/code\u003e\u003c/a\u003e Decouple clear_after_fork from lru_cache and then compose.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/1da3f456ab53832fd6e1236f2338388d9ea0b0c6\"\u003e\u003ccode\u003e1da3f45\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/a1c25d8f2dc50abec65e4cf6d733b15d73c2f3b1\"\u003e\u003ccode\u003ea1c25d8\u003c/code\u003e\u003c/a\u003e 🧎‍♀️ Genuflect to the types.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/4e962a8498990ba82120e7a58ce71abedefa0003\"\u003e\u003ccode\u003e4e962a8\u003c/code\u003e\u003c/a\u003e 👹 Feed the hobgoblins (delint).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/6a30ab96290b18c0b9805268a201ca5011c1feae\"\u003e\u003ccode\u003e6a30ab9\u003c/code\u003e\u003c/a\u003e Allow initial currsize to be greater than one (as happens when running the te...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v8.7.0...v8.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pathspec` from 0.12.1 to 1.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cpburnz/python-pathspec/releases\"\u003epathspec's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.3\u003c/h2\u003e\n\u003cp\u003eRelease v1.0.3. See \u003ca href=\"https://github.com/cpburnz/python-pathspec/blob/v1.0.3/CHANGES.rst\"\u003eCHANGES.rst\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003cp\u003eRelease v1.0.2. See \u003ca href=\"https://github.com/cpburnz/python-pathspec/blob/v1.0.2/CHANGES.rst\"\u003eCHANGES.rst\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cp\u003eRelease v1.0.1. See \u003ca href=\"https://github.com/cpburnz/python-pathspec/blob/v1.0.1/CHANGES.rst\"\u003eCHANGES.rst\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eRelease v1.0.0. See \u003ca href=\"https://github.com/cpburnz/python-pathspec/blob/v1.0.0/CHANGES.rst\"\u003eCHANGES.rst\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/cpburnz/python-pathspec/blob/master/CHANGES.rst\"\u003epathspec's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.3 (2026-01-09)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eIssue [#101](https://github.com/cpburnz/python-pathspec/issues/101)\u003c/code\u003e_: pyright strict errors with pathspec \u0026gt;= 1.0.0.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eIssue [#102](https://github.com/cpburnz/python-pathspec/issues/102)\u003c/code\u003e_: No module named 'tomllib'.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _\u003ccode\u003eIssue [#101](https://github.com/cpburnz/python-pathspec/issues/101)\u003c/code\u003e: \u003ca href=\"https://redirect.github.com/cpburnz/python-pathspec/issues/101\"\u003ecpburnz/python-pathspec#101\u003c/a\u003e\n.. _\u003ccode\u003eIssue [#102](https://github.com/cpburnz/python-pathspec/issues/102)\u003c/code\u003e: \u003ca href=\"https://redirect.github.com/cpburnz/python-pathspec/issues/102\"\u003ecpburnz/python-pathspec#102\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.0.2 (2026-01-07)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eType hint \u003ccode\u003ecollections.abc.Callable\u003c/code\u003e does not properly replace \u003ccode\u003etyping.Callable\u003c/code\u003e until Python 3.9.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.1 (2026-01-06)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eIssue [#100](https://github.com/cpburnz/python-pathspec/issues/100)\u003c/code\u003e_: ValueError(f\u0026quot;{patterns=!r} cannot be empty.\u0026quot;) when using black.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _\u003ccode\u003eIssue [#100](https://github.com/cpburnz/python-pathspec/issues/100)\u003c/code\u003e: \u003ca href=\"https://redirect.github.com/cpburnz/python-pathspec/issues/100\"\u003ecpburnz/python-pathspec#100\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.0.0 (2026-01-05)\u003c/h2\u003e\n\u003cp\u003eMajor changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eIssue [#91](https://github.com/cpburnz/python-pathspec/issues/91)\u003c/code\u003e_: Dropped support of EoL Python 3.8.\u003c/li\u003e\n\u003cli\u003eAdded concept of backends to allow for faster regular expression matching. The backend can be controlled using the \u003ccode\u003ebackend\u003c/code\u003e argument to \u003ccode\u003ePathSpec()\u003c/code\u003e, \u003ccode\u003ePathSpec.from_lines()\u003c/code\u003e, \u003ccode\u003eGitIgnoreSpec()\u003c/code\u003e, and \u003ccode\u003eGitIgnoreSpec.from_lines()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRenamed \u0026quot;gitwildmatch\u0026quot; pattern back to \u0026quot;gitignore\u0026quot;. The \u0026quot;gitignore\u0026quot; pattern behaves slightly differently when used with \u003ccode\u003ePathSpec\u003c/code\u003e (\u003cem\u003egitignore\u003c/em\u003e as documented) than with \u003ccode\u003eGitIgnoreSpec\u003c/code\u003e (replicates \u003cem\u003eGit\u003c/em\u003e's edge cases).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAPI changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBreaking: protected method \u003ccode\u003epathspec.pathspec.PathSpec._match_file()\u003c/code\u003e (with a leading underscore) has been removed and replaced by backends. This does not affect normal usage of \u003ccode\u003ePathSpec\u003c/code\u003e or \u003ccode\u003eGitIgnoreSpec\u003c/code\u003e. Only custom subclasses will be affected. If this breaks your usage, let me know by \u003ccode\u003eopening an issue \u0026lt;https://github.com/cpburnz/python-pathspec/issues\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u0026quot;gitwildmatch\u0026quot; is now an alias for \u0026quot;gitignore\u0026quot;.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u003ccode\u003epathspec.patterns.GitWildMatchPattern\u003c/code\u003e is now an alias for \u003ccode\u003epathspec.patterns.gitignore.spec.GitIgnoreSpecPattern\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u003ccode\u003epathspec.patterns.gitwildmatch\u003c/code\u003e module has been replaced by the \u003ccode\u003epathspec.patterns.gitignore\u003c/code\u003e package.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u003ccode\u003epathspec.patterns.gitwildmatch.GitWildMatchPattern\u003c/code\u003e is now an alias for \u003ccode\u003epathspec.patterns.gitignore.spec.GitIgnoreSpecPattern\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u003ccode\u003epathspec.patterns.gitwildmatch.GitWildMatchPatternError\u003c/code\u003e is now an alias for \u003ccode\u003epathspec.patterns.gitignore.GitIgnorePatternError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRemoved: \u003ccode\u003epathspec.patterns.gitwildmatch.GitIgnorePattern\u003c/code\u003e has been deprecated since v0.4 (2016-07-15).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/db3f54e78f68824f641b186bf4a749d944e2153f\"\u003e\u003ccode\u003edb3f54e\u003c/code\u003e\u003c/a\u003e Releasse v1.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/1b6bdda35a44cf48edc67a71d8020c26e84a40ec\"\u003e\u003ccode\u003e1b6bdda\u003c/code\u003e\u003c/a\u003e Releasse v1.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/f9b556abd5eebe94ec70404f5c386bf4451f5437\"\u003e\u003ccode\u003ef9b556a\u003c/code\u003e\u003c/a\u003e Fix docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/9867f1a954c68e8a4dc9cdcf8bfc5ad018a7951c\"\u003e\u003ccode\u003e9867f1a\u003c/code\u003e\u003c/a\u003e Fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/85cb3cc18bf925bef3b00b74a8b11049826c0129\"\u003e\u003ccode\u003e85cb3cc\u003c/code\u003e\u003c/a\u003e Fix docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/66281233ae20aa1de22345c1eb004dad9592b55d\"\u003e\u003ccode\u003e6628123\u003c/code\u003e\u003c/a\u003e Fix 101 regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/0ff66291a073efa3daacb4ccace3ce60420923ba\"\u003e\u003ccode\u003e0ff6629\u003c/code\u003e\u003c/a\u003e Release v1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/cbb66012c088c9f51f33b86a22c1c44e9fdf228b\"\u003e\u003ccode\u003ecbb6601\u003c/code\u003e\u003c/a\u003e Release v1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/73a02203b9c9e90c58156e36cdda5853fbefc4fa\"\u003e\u003ccode\u003e73a0220\u003c/code\u003e\u003c/a\u003e Trusted publishing is a pain\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/4cf4e9788622b7ed451d0206cf1bc00b994a1701\"\u003e\u003ccode\u003e4cf4e97\u003c/code\u003e\u003c/a\u003e Trusted publishing is a pain\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cpburnz/python-pathspec/compare/v0.12.1...v1.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytokens` from 0.1.10 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/5d02d6df9bb9a779c901bdaf8681308ad9ae4748\"\u003e\u003ccode\u003e5d02d6d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tusharsadhwani/pytokens/issues/7\"\u003e#7\u003c/a\u003e from tusharsadhwani/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/23a9d936976b6e84bac722f428abdda24e602845\"\u003e\u003ccode\u003e23a9d93\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/b0e77e1627769dc51f058456a7d600f116ea70fa\"\u003e\u003ccode\u003eb0e77e1\u003c/code\u003e\u003c/a\u003e remove debug log\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/7fe68dbfe58472865dafa94f761cbc5f690c6d48\"\u003e\u003ccode\u003e7fe68db\u003c/code\u003e\u003c/a\u003e fix nested t string and f string edge case\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/858eff14064c1183ed4a99c5f64b8a3406e83417\"\u003e\u003ccode\u003e858eff1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tusharsadhwani/pytokens/issues/11\"\u003e#11\u003c/a\u003e from cjwatson/no-pycache\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/a130b98c2b7878a164f164b65f6109bd2f1d5fa3\"\u003e\u003ccode\u003ea130b98\u003c/code\u003e\u003c/a\u003e Don't include tests/\u003cstrong\u003epycache\u003c/strong\u003e in sdists\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/7dd6c2ce6b8475815c7b8a78567c11fb14b79510\"\u003e\u003ccode\u003e7dd6c2c\u003c/code\u003e\u003c/a\u003e Add t-string support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/0a9c1d4f2a3a71bb1b721fe7de6460ba1ac8802e\"\u003e\u003ccode\u003e0a9c1d4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tusharsadhwani/pytokens/issues/6\"\u003e#6\u003c/a\u003e from tusharsadhwani/packaging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/606253ed32d801c83adaeb84eb228a212176fa20\"\u003e\u003ccode\u003e606253e\u003c/code\u003e\u003c/a\u003e Update tests and fix packaging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/594b445644bceadd2bcce1443373cf0ff26cb328\"\u003e\u003ccode\u003e594b445\u003c/code\u003e\u003c/a\u003e Update docs: pytokens is no longer a console script\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tusharsadhwani/pytokens/compare/0.1.10...0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `soupsieve` from 2.8 to 2.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/soupsieve/releases\"\u003esoupsieve's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Changes in tests to accommodate latest Python HTML parser changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/soupsieve/commit/f89979745e12e83dbb31dde910a0ad08e9c5c717\"\u003e\u003ccode\u003ef899797\u003c/code\u003e\u003c/a\u003e Adjust changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/soupsieve/commit/1b964a850bb482cc183f3f70811b25487ba200ee\"\u003e\u003ccode\u003e1b964a8\u003c/code\u003e\u003c/a\u003e Switch to using Zensical for documents (\u003ca href=\"https://redirect.github.com/facelessuser/soupsieve/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/soupsieve/commit/046ce54956a0c30120038561e53b40994d29de2c\"\u003e\u003ccode\u003e046ce54\u003c/code\u003e\u003c/a\u003e Adjustments for changes in HTML parser (\u003ca href=\"https://redirect.github.com/facelessuser/soupsieve/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/soupsieve/compare/2.8...2.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `super-collections` from 0.6.0 to 0.6.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/super-collections/commit/550a1cfa79c9f085c069dd33e774358acc371717\"\u003e\u003ccode\u003e550a1cf\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of \u003ca href=\"https://github.com/fralau/super-collections\"\u003ehttps://github.com/fralau/super-collections\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/super-collections/commit/17c851c83c20e5ffb21a4006081b574a5d33bb64\"\u003e\u003ccode\u003e17c851c\u003c/code\u003e\u003c/a\u003e New fixes for \u003ca href=\"https://redirect.github.com/fralau/super-collections/issues/11\"\u003e#11\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/super-collections/commit/6cd708e15f2e8ddbbf8800154cb2804073dfc951\"\u003e\u003ccode\u003e6cd708e\u003c/code\u003e\u003c/a\u003e New fixes for \u003ca href=\"https://redirect.github.com/fralau/super-collections/issues/11\"\u003e#11\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/super-collections/commit/be5c394e6fa1ea15fe752ad0ede06b0b219964de\"\u003e\u003ccode\u003ebe5c394\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of \u003ca href=\"https://github.com/fralau/super-collections\"\u003ehttps://github.com/fralau/super-collections\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/super-collections/commit/21a16bf18ffef6c2f12bef16e887d1742f5072d5\"\u003e\u003ccode\u003e21a16bf\u003c/code\u003e\u003c/a\u003e Fix issue list[] and dict[] types for Python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/super-collections/commit/85576e4054f4f0e110325fab99ab28ad57146ccb\"\u003e\u003ccode\u003e85576e4\u003c/code\u003e\u003c/a\u003e Update test.yml (install [test] and not [dev])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/super-collections/commit/27a1da89a511a8c7a2dbc5a033c4f6b294ee7e61\"\u003e\u003ccode\u003e27a1da8\u003c/code\u003e\u003c/a\u003e Workflow: correct error in version numbers (python-version)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/super-collections/commit/4f464eb974437e507c8f6c90e83b58437efd3b54\"\u003e\u003ccode\u003e4f464eb\u003c/code\u003e\u003c/a\u003e Fix issues with type hints for Shelf\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/super-collections/commit/c18204a10ee2f762a06697d774b8846693e9e5e9\"\u003e\u003ccode\u003ec18204a\u003c/code\u003e\u003c/a\u003e Improve documentation and little improvements\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fralau/super-collections/compare/v0.6.0...v0.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.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\u003ch2\u003e2.6.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-2xpw-w6gg-jr37)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by \u003ca href=\"https://github.com/illia-v\"\u003e\u003ccode\u003e@​illia-v\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-gm62-xv2j-4w53)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to  benefit from the security fixes and avoid warnings. Prefer using  \u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n...\n\n_Description has been truncated_","html_url":"https://github.com/tektronix/tm_data_types/pull/142","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tektronix%2Ftm_data_types/issues/142","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/142/packages"},{"uuid":"3789593849","node_id":"PR_kwDOMFeY886786cl","number":141,"state":"open","title":"python-deps(deps): bump the python-dependencies group across 1 directory with 26 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["dependabot[bot]"],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-07T17:11:20.000Z","updated_at":"2026-01-07T17:20:00.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"python-deps(deps): bump","group_name":"python-dependencies","update_count":26,"packages":[{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"black","old_version":"25.9.0","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"mkdocs-gen-files","old_version":"0.5.0","new_version":"0.6.0","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-macros-plugin","old_version":"1.4.0","new_version":"1.5.0","repository_url":"https://github.com/fralau/mkdocs_macros_plugin"},{"name":"mkdocs-mermaid2-plugin","old_version":"1.2.2","new_version":"1.2.3","repository_url":"https://github.com/fralau/mkdocs-mermaid2-plugin"},{"name":"pymdown-extensions","old_version":"10.16.1","new_version":"10.20","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"tomli","old_version":"2.2.1","new_version":"2.3.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"beautifulsoup4","old_version":"4.14.2","new_version":"4.14.3"},{"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.1.8","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":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pathspec","old_version":"0.12.1","new_version":"1.0.1","repository_url":"https://github.com/cpburnz/python-pathspec"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [nodeenv](https://github.com/ekalinin/nodeenv), [pylint](https://github.com/pylint-dev/pylint), [pyright](https://github.com/RobertCraigie/pyright-python), [black](https://github.com/psf/black), [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files), [mkdocs-macros-plugin](https://github.com/fralau/mkdocs_macros_plugin), [mkdocs-mermaid2-plugin](https://github.com/fralau/mkdocs-mermaid2-plugin), [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions), [tomli](https://github.com/hukkin/tomli), [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/), [certifi](https://github.com/certifi/python-certifi), [charset-normalizer](https://github.com/jawah/charset_normalizer), [click](https://github.com/pallets/click), [idna](https://github.com/kjd/idna), [markdown](https://github.com/Python-Markdown/markdown), [pathspec](https://github.com/cpburnz/python-pathspec), [platformdirs](https://github.com/tox-dev/platformdirs), [pytokens](https://github.com/tusharsadhwani/pytokens), [soupsieve](https://github.com/facelessuser/soupsieve), [super-collections](https://github.com/fralau/super-collections), [termcolor](https://github.com/termcolor/termcolor), [urllib3](https://github.com/urllib3/urllib3), [coverage[toml]](https://github.com/coveragepy/coveragepy), [dnspython](https://github.com/rthalley/dnspython), [iniconfig](https://github.com/pytest-dev/iniconfig) and [networkx](https://github.com/networkx/networkx) to permit the latest version.\nUpdates `nodeenv` from 1.9.1 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ekalinin/nodeenv/releases\"\u003enodeenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.10.0 - drop\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixed bugs 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse lowercase lookup for archmap by \u003ca href=\"https://github.com/robmoss2k\"\u003e\u003ccode\u003e@​robmoss2k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/382\"\u003eekalinin/nodeenv#382\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/367\"\u003eekalinin/nodeenv#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd UV Virtual Environment support by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/386\"\u003eekalinin/nodeenv#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sh instead of bash by \u003ca href=\"https://github.com/WhyNotHugo\"\u003e\u003ccode\u003e@​WhyNotHugo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/389\"\u003eekalinin/nodeenv#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace additional use of \u003ccode\u003ewhich(1)\u003c/code\u003e with \u003ccode\u003eshutil.which()\u003c/code\u003e by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/355\"\u003eekalinin/nodeenv#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport leading \u003ccode\u003ev\u003c/code\u003e in \u003ccode\u003e.node-version\u003c/code\u003e by \u003ca href=\"https://github.com/nix6839\"\u003e\u003ccode\u003e@​nix6839\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/359\"\u003eekalinin/nodeenv#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck host platform when finding \u003ccode\u003enode\u003c/code\u003e version by \u003ca href=\"https://github.com/max0x53\"\u003e\u003ccode\u003e@​max0x53\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/363\"\u003eekalinin/nodeenv#363\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/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/367\"\u003eekalinin/nodeenv#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nix6839\"\u003e\u003ccode\u003e@​nix6839\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/359\"\u003eekalinin/nodeenv#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/max0x53\"\u003e\u003ccode\u003e@​max0x53\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/363\"\u003eekalinin/nodeenv#363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robmoss2k\"\u003e\u003ccode\u003e@​robmoss2k\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/382\"\u003eekalinin/nodeenv#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/386\"\u003eekalinin/nodeenv#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/WhyNotHugo\"\u003e\u003ccode\u003e@​WhyNotHugo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/389\"\u003eekalinin/nodeenv#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/355\"\u003eekalinin/nodeenv#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.0\"\u003ehttps://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.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/ekalinin/nodeenv/commit/9dee547f5e45c9d1b155e4351d165f2b504ae281\"\u003e\u003ccode\u003e9dee547\u003c/code\u003e\u003c/a\u003e chore: bump nodeenv version to 1.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/d45aabbf54139f5ecbaf9db05d3949d39999136e\"\u003e\u003ccode\u003ed45aabb\u003c/code\u003e\u003c/a\u003e chore: add pyright ignore comments for compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/55d6c21a6d56631c0c1d08a04d3c1ea3531ba832\"\u003e\u003ccode\u003e55d6c21\u003c/code\u003e\u003c/a\u003e chore: update AUTHORS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/5f694e6ac261f29233a28061e4af64669199721e\"\u003e\u003ccode\u003e5f694e6\u003c/code\u003e\u003c/a\u003e test: update test test_node_system_creates_shim\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/fa3fdfb1bf807d869795f5bf690359808cb5c529\"\u003e\u003ccode\u003efa3fdfb\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:ekalinin/nodeenv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/e868dbe29cad74819615d039b78af21bb2ae431d\"\u003e\u003ccode\u003ee868dbe\u003c/code\u003e\u003c/a\u003e Replace additional use of \u003ccode\u003ewhich(1)\u003c/code\u003e with \u003ccode\u003eshutil.which()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/b4cd00d453d9f4772c7c410dfbc57d7e757dad5e\"\u003e\u003ccode\u003eb4cd00d\u003c/code\u003e\u003c/a\u003e test: enhance activation tests for nodeenv with custom prompts and file handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/0b5ea9d55ad72ef30a5a7461e27b95c9453bd833\"\u003e\u003ccode\u003e0b5ea9d\u003c/code\u003e\u003c/a\u003e refactor(tests): improve readability of mock patches in nodeenv tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/37c0c304317b9a5646e1779d38b71c4c6928a0a5\"\u003e\u003ccode\u003e37c0c30\u003c/code\u003e\u003c/a\u003e ci: add GH workflow for testing and coverage in PR\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/326a7a4c1ced11fb3356cdd2c8511f9cdeb81ebc\"\u003e\u003ccode\u003e326a7a4\u003c/code\u003e\u003c/a\u003e test: add comprehensive tests for install_npm and install_npm_win functions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pylint` to 3.3.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/4cab7ca4eae88b75960fcf2479b8ddd377dd4ce2\"\u003e\u003ccode\u003e4cab7ca\u003c/code\u003e\u003c/a\u003e Bump pylint to 3.3.9, update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/81fb483fdeaa343bae73a72dadcf29c2c70ee41e\"\u003e\u003ccode\u003e81fb483\u003c/code\u003e\u003c/a\u003e [Backport maintenance/3.3.x] Extend catching of ValueError to 3.12.5+ (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10611\"\u003e#10611\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/1ef673b1fbfedf5575046376397885c046abd70a\"\u003e\u003ccode\u003e1ef673b\u003c/code\u003e\u003c/a\u003e [Backport maintenance/3.3.x] Fix flagging undeprecated importlib.resources fu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/194790c65856b282389e9754b6a0f4c98f05f9a5\"\u003e\u003ccode\u003e194790c\u003c/code\u003e\u003c/a\u003e Fix invalid refs in 3.3 whatsnew (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10578\"\u003e#10578\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10579\"\u003e#10579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/98238705507065c20bf62eb0ddbe021d44f9b111\"\u003e\u003ccode\u003e9823870\u003c/code\u003e\u003c/a\u003e fix: handle \u003ccode\u003einconsistent-return-statements\u003c/code\u003e false positive with \u003ccode\u003equit()\u003c/code\u003e/`ex...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/16fe1270fecf08a9b79483b9c9954adbe1a9d3e6\"\u003e\u003ccode\u003e16fe127\u003c/code\u003e\u003c/a\u003e fix: handle for-loop variable shadowing correctly (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10569\"\u003e#10569\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10571\"\u003e#10571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/6cf727cbf982f5d75c9a0162bcb493799f15896e\"\u003e\u003ccode\u003e6cf727c\u003c/code\u003e\u003c/a\u003e Add sphinx reference for whatsnew 3.3 (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10564\"\u003e#10564\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10565\"\u003e#10565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/641a316c3c9c9e0c32f5289445344ad6595c7b53\"\u003e\u003ccode\u003e641a316\u003c/code\u003e\u003c/a\u003e Use custom backport action (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10536\"\u003e#10536\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10537\"\u003e#10537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/65efb677aa3b74088c9f35293138ea2435f925a7\"\u003e\u003ccode\u003e65efb67\u003c/code\u003e\u003c/a\u003e [fix] Better approach in 'unnecessary-list-index-lookup' to avoid crashes (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/78444bb70696fbeee3df56f2fb9f36fed89b4971\"\u003e\u003ccode\u003e78444bb\u003c/code\u003e\u003c/a\u003e Fix used-before-assignment for PEP 695 type aliases + parameters (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10488\"\u003e#10488\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pylint-dev/pylint/compare/v3.3.8...v3.3.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` to 1.1.407\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/53e8efb4638daca6c541d18ad35dafb0e5d9f34d\"\u003e\u003ccode\u003e53e8efb\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.407 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/1d515b71299f9dc4c066ce37e673d93bda4bc2df\"\u003e\u003ccode\u003e1d515b7\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.406 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.405...v1.1.407\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 25.9.0 to 25.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where python 3.12 generics syntax split line happens weirdly (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize type comments to form \u003ccode\u003e# type: \u0026lt;value\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e preview feature to respect \u003ccode\u003e# fmt: skip\u003c/code\u003e for compound\nstatements with semicolon-separated bodies (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eno_cache\u003c/code\u003e option to control caching behavior. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4803\"\u003e#4803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Linux binaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4773\"\u003e#4773\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWrite unchanged content to stdout when excluding formatting from stdin using pipes\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented BlackDClient. This simple python client allows to easily send formatting\nrequests to blackd (\u003ca href=\"https://redirect.github.com/psf/black/issues/4774\"\u003e#4774\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable 3.14 base CI (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to support the \u003ccode\u003erequired-version\u003c/code\u003e major-version-only\n\u0026quot;stability\u0026quot; format when using pyproject.toml (\u003ca href=\"https://redirect.github.com/psf/black/issues/4770\"\u003e#4770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for vim plugin users. It now handles independently vim version\u003c/li\u003e\n\u003cli\u003eVim: Warn on unsupported Vim and Python versions independently (\u003ca href=\"https://redirect.github.com/psf/black/issues/4772\"\u003e#4772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Print the import paths when importing black fails (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Fix handling of virtualenvs that have a different Python version (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where python 3.12 generics syntax split line happens weirdly (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize type comments to form \u003ccode\u003e# type: \u0026lt;value\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e preview feature to respect \u003ccode\u003e# fmt: skip\u003c/code\u003e for compound\nstatements with semicolon-separated bodies (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eno_cache\u003c/code\u003e option to control caching behavior. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4803\"\u003e#4803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Linux binaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4773\"\u003e#4773\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWrite unchanged content to stdout when excluding formatting from stdin using pipes\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented BlackDClient. This simple python client allows to easily send formatting\nrequests to blackd (\u003ca href=\"https://redirect.github.com/psf/black/issues/4774\"\u003e#4774\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable 3.14 base CI (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to support the \u003ccode\u003erequired-version\u003c/code\u003e major-version-only\n\u0026quot;stability\u0026quot; format when using pyproject.toml (\u003ca href=\"https://redirect.github.com/psf/black/issues/4770\"\u003e#4770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for vim plugin users. It now handles independently vim version\u003c/li\u003e\n\u003cli\u003eVim: Warn on unsupported Vim and Python versions independently (\u003ca href=\"https://redirect.github.com/psf/black/issues/4772\"\u003e#4772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Print the import paths when importing black fails (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Fix handling of virtualenvs that have a different Python version (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/05f0a8ce1f71fbb36e1e032d3b518c7b945089a2\"\u003e\u003ccode\u003e05f0a8c\u003c/code\u003e\u003c/a\u003e Prepare for 25.11.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4825\"\u003e#4825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ae17c61310e44401ca55d17a9c01db1dc03940a6\"\u003e\u003ccode\u003eae17c61\u003c/code\u003e\u003c/a\u003e Fix tests on pytest 9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4835\"\u003e#4835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/138745eca650aa59ab30458f7b1c026b66608a09\"\u003e\u003ccode\u003e138745e\u003c/code\u003e\u003c/a\u003e Include Windows and Python 3.14 in PR wheel build matrix, fix Windows build (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/18170d6d8d9bdde97d4cd3568cfa8be434a09ff3\"\u003e\u003ccode\u003e18170d6\u003c/code\u003e\u003c/a\u003e ci: add label for running all builds on a pull request (\u003ca href=\"https://redirect.github.com/psf/black/issues/4833\"\u003e#4833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0e793e3d7e0d12dbda1573fa1bb785b1f066ee7c\"\u003e\u003ccode\u003e0e793e3\u003c/code\u003e\u003c/a\u003e fix windows wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4830\"\u003e#4830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b71f36c9fda07930c83e22681e0ec08ddf5a3980\"\u003e\u003ccode\u003eb71f36c\u003c/code\u003e\u003c/a\u003e Use build[uv] as cibuildwheel frontend (\u003ca href=\"https://redirect.github.com/psf/black/issues/4831\"\u003e#4831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a7bd594493bb5cb703beee877a2df40556b0baaa\"\u003e\u003ccode\u003ea7bd594\u003c/code\u003e\u003c/a\u003e Skip free threaded builds in cibuildwheel (\u003ca href=\"https://redirect.github.com/psf/black/issues/4829\"\u003e#4829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/862dee91fa1259ca2bc00f10538b52a4959bdbe8\"\u003e\u003ccode\u003e862dee9\u003c/code\u003e\u003c/a\u003e Update cibuildwheel (\u003ca href=\"https://redirect.github.com/psf/black/issues/4828\"\u003e#4828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b5f354c56627640e0b853af51a51d9262bafa9f0\"\u003e\u003ccode\u003eb5f354c\u003c/code\u003e\u003c/a\u003e build: restrict to pytest 9.0 due to breakage in custom pytest_configure (\u003ca href=\"https://redirect.github.com/psf/black/issues/4827\"\u003e#4827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f705197f57149b79ed83cccf22e4fed19b48a7bf\"\u003e\u003ccode\u003ef705197\u003c/code\u003e\u003c/a\u003e t-string support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.9.0...25.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.5.0 to 0.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompatibility with MkDocs 1.6 is improved - generated files don't have to have an \u003ccode\u003eabs_src_path\u003c/code\u003e - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThere was a bug: using \u003ccode\u003eedit_uri_template\u003c/code\u003e in MkDocs would prevent \u003ccode\u003eset_edit_path()\u003c/code\u003e from working.\nThis is now fixed - \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/37\"\u003e#37\u003c/a\u003e - thanks to \u003ca href=\"https://github.com/frankkusters\"\u003e\u003ccode\u003e@​frankkusters\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe MkDocs configuration file now can be \u003ccode\u003emkdocs.yaml\u003c/code\u003e, not only \u003ccode\u003emkdocs.yml\u003c/code\u003e. Thanks to \u003ca href=\"https://github.com/mgor\"\u003e\u003ccode\u003e@​mgor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/39\"\u003eoprypin/mkdocs-gen-files#39\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMkDocs 1.4.1 is now the lowest supported version -  \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.9 is now the lowest supported version.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ca href=\"https://oprypin.github.io/mkdocs-gen-files/extras.html#programmatically-generating-the-navigation\"\u003enav generator\u003c/a\u003e can support empty paths - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.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/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/1a822d9e0d376d8ecae95fb961144a5af4887ef1\"\u003e\u003ccode\u003e1a822d9\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003e\u003ccode\u003e7baa032\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/6fd0fe048ebf928763458d8dba1a476ca2196117\"\u003e\u003ccode\u003e6fd0fe0\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-macros-plugin` from 1.4.0 to 1.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/blob/master/CHANGELOG.md\"\u003emkdocs-macros-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.0, 2025-11-13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: For each push, testing on github for versions Python 3.8 to 3.12\u003c/li\u003e\n\u003cli\u003eFixed: bug in import of packages when not in source dir (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.1, 2025-10-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: support for j2_extensions paramater in config file (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed: missing dependency declaration on \u003ccode\u003erequests\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/0536f4da1dc643e1fa1f0cc90e71512ada67dc04\"\u003e\u003ccode\u003e0536f4d\u003c/code\u003e\u003c/a\u003e Fix type hint for compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/d9a6bc3aac5b12b86f9e2be7af18e1e9178287f6\"\u003e\u003ccode\u003ed9a6bc3\u003c/code\u003e\u003c/a\u003e Require mkdocs-test\u0026gt;=0.6.0 (compatibility with Python 3.8 and 3.9)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/bcaa72db2820d60822ffba15e87c75669abc7b92\"\u003e\u003ccode\u003ebcaa72d\u003c/code\u003e\u003c/a\u003e Make last minute corrections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/356fc2a5b55d1897a2f2c47856d52b10cff4611c\"\u003e\u003ccode\u003e356fc2a\u003c/code\u003e\u003c/a\u003e Prepare for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/aaf16bdcb9dfcb9c6ea9b6567ea4af7f8c178185\"\u003e\u003ccode\u003eaaf16bd\u003c/code\u003e\u003c/a\u003e Limit testing to 3.10 up (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/ba5356c0c263355556aa82dad0fbfde3cce4bc4d\"\u003e\u003ccode\u003eba5356c\u003c/code\u003e\u003c/a\u003e Use proper exit for pytest if Python \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/6c796600bc0886696ce9b76b84354d7e2bc1b6fa\"\u003e\u003ccode\u003e6c79660\u003c/code\u003e\u003c/a\u003e Skip test_modules.py if Python version \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cec7440d46589b303d741a5e2df0a240c25b9bdb\"\u003e\u003ccode\u003ecec7440\u003c/code\u003e\u003c/a\u003e Test installation of d2 in a cross-platform way (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/492759c5ab3d05f7c55ec62ffdf9573b715ac6ed\"\u003e\u003ccode\u003e492759c\u003c/code\u003e\u003c/a\u003e Update with changes from local repo (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cc5416834a07ffd2ba1fe3d917a701ac6e9c98ad\"\u003e\u003ccode\u003ecc54168\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:fralau/mkdocs_macros_plugin\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fralau/mkdocs_macros_plugin/compare/v1.4.0...v1.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-mermaid2-plugin` from 1.2.2 to 1.2.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/blob/master/CHANGELOG.md\"\u003emkdocs-mermaid2-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.3, 2025-10-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: documented the use of variables and macros with MkDocs-Macros\nin Tips and Tricks (\u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/123\"\u003e#123\u003c/a\u003e); dividing the the page into 3 sections.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/59498d0c537c7dc660cd362fd887464e9ec027ed\"\u003e\u003ccode\u003e59498d0\u003c/code\u003e\u003c/a\u003e Reorganize Tips and Tricks page\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/0304ac52c8a9dd256d899b24101da90aa3e901ae\"\u003e\u003ccode\u003e0304ac5\u003c/code\u003e\u003c/a\u003e Improve documentation of how to use Mkdocs-Macros (\u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/123\"\u003e#123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/d1cf04b27eace33b2004dc1c68f9536cf6d4b397\"\u003e\u003ccode\u003ed1cf04b\u003c/code\u003e\u003c/a\u003e Insert suggestion to use MkDocs-Macros for variables and macros\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/compare/v1.2.2...v1.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymdown-extensions` from 10.16.1 to 10.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/releases\"\u003epymdown-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e10.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Quotes: New blockquotes extension added that uses a more modern approach when compared to Python Markdown's\ndefault. Quotes specifically will not group consecutive blockquotes together in the same lazy fashion that the\ndefault Python Markdown does which follows a more modern trend to how parsers these days handle block quotes.\u003c/p\u003e\n\u003cp\u003eIn addition, Quotes also provides an optional feature to enable specifying callouts/alerts in the style used by\nGitHub and Obsidian.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.19.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Arithmatex: Fix issue where block \u003ccode\u003e$$\u003c/code\u003e math used inline within a paragraph could result in nested math\nparsing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Emoji: Update Twemoji to use Unicode 16.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Critic: Roll back \u003ccode\u003eview\u003c/code\u003e mode deprecation as some still like to use it, though further enhancements to this\nmode are not planned.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Critic: \u003ccode\u003eview\u003c/code\u003e mode has been deprecated. To avoid warnings or future issues, explicitly set \u003ccode\u003emode\u003c/code\u003e to\neither \u003ccode\u003eaccept\u003c/code\u003e or \u003ccode\u003ereject\u003c/code\u003e. In the future, the new default will be \u003ccode\u003eaccept\u003c/code\u003e and the \u003ccode\u003eview\u003c/code\u003e mode will be removed\nentirely.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Block Admonition: \u003ccode\u003eimportant\u003c/code\u003e should have always been available as a default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.17.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Blocks: Blocks extensions will now better handle nesting of indented style Admonitions, Details, and Tabbed\nand other non-conflicting blocks.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.17.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix an issue where Highlight can override another extension in the \u0026quot;registered\u0026quot; list in Python Markdown.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Allow specifying static IDs in caption block headers via \u003ccode\u003e#id\u003c/code\u003e syntax.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/7d5c4be60578aefef323126467576eaff1e5e354\"\u003e\u003ccode\u003e7d5c4be\u003c/code\u003e\u003c/a\u003e Quotes: Add nesting examples, fix some grammar, and add nesting test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/9d5b64ac9b2c52b067951d9d83eefed54173ce23\"\u003e\u003ccode\u003e9d5b64a\u003c/code\u003e\u003c/a\u003e Update notes about the new callouts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/531a77a36150a0dc1c9076271fb399a3ffbf856c\"\u003e\u003ccode\u003e531a77a\u003c/code\u003e\u003c/a\u003e Docs: make line number hover stand out more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/0d7be849125bc2266fe7430f6be85ea467f9b088\"\u003e\u003ccode\u003e0d7be84\u003c/code\u003e\u003c/a\u003e Revert change to line wrapping\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/6f9cb091e6e464951ddcff7978f1b04244089694\"\u003e\u003ccode\u003e6f9cb09\u003c/code\u003e\u003c/a\u003e Wrap lines table format as well and adjust docs theme line highlight\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/97f716600719399d412c616092361001f80329d8\"\u003e\u003ccode\u003e97f7166\u003c/code\u003e\u003c/a\u003e Wrap Pygments lines with \u0026lt;span\u0026gt; to allow for better styling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/ad0d49397f5ea64e8c9714eb56471cb54eecd0a7\"\u003e\u003ccode\u003ead0d493\u003c/code\u003e\u003c/a\u003e Update map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/753ddde120b645e45c71b00214023ed9a3e0a7cd\"\u003e\u003ccode\u003e753ddde\u003c/code\u003e\u003c/a\u003e Tweak admonition colors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/7e686eed2f31ab1a96f90ce1dd919bc68f5794a1\"\u003e\u003ccode\u003e7e686ee\u003c/code\u003e\u003c/a\u003e Docs: Update JS deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/2703d81bc90226e46f7eb61894c4552e9543d69a\"\u003e\u003ccode\u003e2703d81\u003c/code\u003e\u003c/a\u003e Add custom blockquote extension (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/compare/10.16.1...10.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tomli` from 2.2.1 to 2.3.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.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eBinary wheels for Python 3.14 (also free-threaded)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePerformance\n\u003cul\u003e\n\u003cli\u003eReduced import time\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/3fccd16450d0f1d87c042473d95a07f60955206e\"\u003e\u003ccode\u003e3fccd16\u003c/code\u003e\u003c/a\u003e Bump version: 2.2.1 → 2.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/65040163ea9b528b2d37a1bb5df886472c310930\"\u003e\u003ccode\u003e6504016\u003c/code\u003e\u003c/a\u003e Add 2.3.0 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/0bc66fcab1f766fe410ffeebfe9ec1ec646f1681\"\u003e\u003ccode\u003e0bc66fc\u003c/code\u003e\u003c/a\u003e Remove now off-by-default PyPy from cibuildwheel skip list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/0aa242f3188f4b892e434f1b4d23818fcd978615\"\u003e\u003ccode\u003e0aa242f\u003c/code\u003e\u003c/a\u003e Update license metadata to appease PEP 639\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/a18221eb5c3f4592285f533d48e68432132bc37b\"\u003e\u003ccode\u003ea18221e\u003c/code\u003e\u003c/a\u003e Bump GitHub CI actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/6fa4d90aa9bb1693b327c72fd18a6c925d1dd5d7\"\u003e\u003ccode\u003e6fa4d90\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/260\"\u003e#260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/b974fa13a96503546e47a895ac123d5c8425bc9a\"\u003e\u003ccode\u003eb974fa1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/f574f366d40b2fa0672177f06df4d6dfc4188356\"\u003e\u003ccode\u003ef574f36\u003c/code\u003e\u003c/a\u003e Update mypy to 1.15 and use \u003ccode\u003e--strict\u003c/code\u003e mode (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/257\"\u003e#257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/1da01ef78fee9f491f55feb5e2d9fcf24d4977f0\"\u003e\u003ccode\u003e1da01ef\u003c/code\u003e\u003c/a\u003e Reduce import time by removing \u003ccode\u003etyping\u003c/code\u003e import (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/251\"\u003e#251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/41881885a360e9f6526badafc1c5b2eec4133393\"\u003e\u003ccode\u003e4188188\u003c/code\u003e\u003c/a\u003e Reduce import time by removing \u003ccode\u003estring\u003c/code\u003e and \u003ccode\u003etomli._types\u003c/code\u003e imports\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hukkin/tomli/compare/2.2.1...2.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.14.2 to 4.14.3\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.1.8 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.1.8...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 `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pathspec` from 0.12.1 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cpburnz/python-pathspec/releases\"\u003epathspec's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cp\u003eRelease v1.0.1. See \u003ca href=\"https://github.com/cpburnz/python-pathspec/blob/v1.0.1/CHANGES.rst\"\u003eCHANGES.rst\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eRelease v1.0.0. See \u003ca href=\"https://github.com/cpburnz/python-pathspec/blob/v1.0.0/CHANGES.rst\"\u003eCHANGES.rst\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/cpburnz/python-pathspec/blob/master/CHANGES.rst\"\u003epathspec's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2026-01-06)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eIssue [#100](https://github.com/cpburnz/python-pathspec/issues/100)\u003c/code\u003e_: ValueError(f\u0026quot;{patterns=!r} cannot be empty.\u0026quot;) when using black.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _\u003ccode\u003eIssue [#100](https://github.com/cpburnz/python-pathspec/issues/100)\u003c/code\u003e: \u003ca href=\"https://redirect.github.com/cpburnz/python-pathspec/issues/100\"\u003ecpburnz/python-pathspec#100\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.0.0 (2026-01-05)\u003c/h2\u003e\n\u003cp\u003eMajor changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eIssue [#91](https://github.com/cpburnz/python-pathspec/issues/91)\u003c/code\u003e_: Dropped support of EoL Python 3.8.\u003c/li\u003e\n\u003cli\u003eAdded concept of backends to allow for faster regular expression matching. The backend can be controlled using the \u003ccode\u003ebackend\u003c/code\u003e argument to \u003ccode\u003ePathSpec()\u003c/code\u003e, \u003ccode\u003ePathSpec.from_lines()\u003c/code\u003e, \u003ccode\u003eGitIgnoreSpec()\u003c/code\u003e, and \u003ccode\u003eGitIgnoreSpec.from_lines()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRenamed \u0026quot;gitwildmatch\u0026quot; pattern back to \u0026quot;gitignore\u0026quot;. The \u0026quot;gitignore\u0026quot; pattern behaves slightly differently when used with \u003ccode\u003ePathSpec\u003c/code\u003e (\u003cem\u003egitignore\u003c/em\u003e as documented) than with \u003ccode\u003eGitIgnoreSpec\u003c/code\u003e (replicates \u003cem\u003eGit\u003c/em\u003e's edge cases).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAPI changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBreaking: protected method \u003ccode\u003epathspec.pathspec.PathSpec._match_file()\u003c/code\u003e (with a leading underscore) has been removed and replaced by backends. This does not affect normal usage of \u003ccode\u003ePathSpec\u003c/code\u003e or \u003ccode\u003eGitIgnoreSpec\u003c/code\u003e. Only custom subclasses will be affected. If this breaks your usage, let me know by \u003ccode\u003eopening an issue \u0026lt;https://github.com/cpburnz/python-pathspec/issues\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u0026quot;gitwildmatch\u0026quot; is now an alias for \u0026quot;gitignore\u0026quot;.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u003ccode\u003epathspec.patterns.GitWildMatchPattern\u003c/code\u003e is now an alias for \u003ccode\u003epathspec.patterns.gitignore.spec.GitIgnoreSpecPattern\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u003ccode\u003epathspec.patterns.gitwildmatch\u003c/code\u003e module has been replaced by the \u003ccode\u003epathspec.patterns.gitignore\u003c/code\u003e package.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u003ccode\u003epathspec.patterns.gitwildmatch.GitWildMatchPattern\u003c/code\u003e is now an alias for \u003ccode\u003epathspec.patterns.gitignore.spec.GitIgnoreSpecPattern\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u003ccode\u003epathspec.patterns.gitwildmatch.GitWildMatchPatternError\u003c/code\u003e is now an alias for \u003ccode\u003epathspec.patterns.gitignore.GitIgnorePatternError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRemoved: \u003ccode\u003epathspec.patterns.gitwildmatch.GitIgnorePattern\u003c/code\u003e has been deprecated since v0.4 (2016-07-15).\u003c/li\u003e\n\u003cli\u003eSignature of method \u003ccode\u003epathspec.pattern.RegexPattern.match_file()\u003c/code\u003e has been changed from \u003ccode\u003edef match_file(self, file: str) -\u0026gt; RegexMatchResult | None\u003c/code\u003e to \u003ccode\u003edef match_file(self, file: ...\n\n_Description has been truncated_","html_url":"https://github.com/tektronix/tm_data_types/pull/141","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tektronix%2Ftm_data_types/issues/141","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/141/packages"}],"issue_packages":[{"old_version":"0.6.0","new_version":"0.6.1","update_type":"patch","path":null,"pr_created_at":"2026-06-14T22:11:59.000Z","version_change":"0.6.0 → 0.6.1","issue":{"uuid":"4660808409","node_id":"PR_kwDOK8iTgM7mUYD8","number":361,"state":"open","title":"build(deps-dev): bump the uv-pip group with 3 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-14T22:11:59.000Z","updated_at":"2026-06-15T01:05:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev): bump","group_name":"uv-pip","update_count":3,"packages":[{"name":"mkdocs-gen-files","old_version":"0.6.0","new_version":"0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-include-markdown-plugin","old_version":"7.2.0","new_version":"7.3.0","repository_url":"https://github.com/mondeja/mkdocs-include-markdown-plugin"},{"name":"mkdocs-material","old_version":"9.7.1","new_version":"9.7.6","repository_url":"https://github.com/squidfunk/mkdocs-material"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-pip group with 3 updates: [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files), [mkdocs-include-markdown-plugin](https://github.com/mondeja/mkdocs-include-markdown-plugin) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material).\n\nUpdates `mkdocs-gen-files` from 0.6.0 to 0.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-include-markdown-plugin` from 7.2.0 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/releases\"\u003emkdocs-include-markdown-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.3.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new setting \u003ccode\u003einclude_from_url\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.2.2\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix natural order by extension not correctly applied\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.2.1\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize string concatenation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/0604be2390c35b9da7d1a69be2f8925693460efd\"\u003e\u003ccode\u003e0604be2\u003c/code\u003e\u003c/a\u003e Add new setting \u003ccode\u003einclude_from_url\u003c/code\u003e(\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/299\"\u003e#299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/f0809f9ac84db5dd29a5bc98e9029d69164237b8\"\u003e\u003ccode\u003ef0809f9\u003c/code\u003e\u003c/a\u003e Document order setting (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/298\"\u003e#298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/98cf8e8dee370cf332ed00cd8426d2ffcfa07065\"\u003e\u003ccode\u003e98cf8e8\u003c/code\u003e\u003c/a\u003e Fix natural order by extension not correctly applied (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/292\"\u003e#292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/39df60911e5a5da6cd0cdace89cead96c79636bc\"\u003e\u003ccode\u003e39df609\u003c/code\u003e\u003c/a\u003e Optimize string concatenation across multiple files (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/39fb543b070d00114b2ec72d6373499b74092066\"\u003e\u003ccode\u003e39fb543\u003c/code\u003e\u003c/a\u003e docs(license): update copyright year(s) (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/6fd647f159f346e002e14c175f0b8ea6e67f8144\"\u003e\u003ccode\u003e6fd647f\u003c/code\u003e\u003c/a\u003e Document that filesystem order allows reverse (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/32978ca56cbc343feda9d7e0e448162b272e7f5b\"\u003e\u003ccode\u003e32978ca\u003c/code\u003e\u003c/a\u003e Deduplicate common arguments in documentation (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/compare/v7.2.0...v7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.7.1 to 9.7.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.6\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.5\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.4\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed environment (recommended by \u003ca href=\"https://github.com/caveeroo\"\u003e\u003ccode\u003e@​caveeroo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.6 (2026-03-19)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.5 (2026-03-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.4 (2026-03-03)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed environment\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.3 (2026-02-24)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8567\"\u003e#8567\u003c/a\u003e: Print MkDocs 2.0 incompatibility warning to stderr\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.2 (2026-02-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to 'mkdocs build' about impending MkDocs 2.0 incompatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\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/squidfunk/mkdocs-material/commit/6c52ed6289b171a153875491f059a94819ec3e10\"\u003e\u003ccode\u003e6c52ed6\u003c/code\u003e\u003c/a\u003e Prepare 9.7.6 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/51d9b76636431814df924bcda27485b16023978b\"\u003e\u003ccode\u003e51d9b76\u003c/code\u003e\u003c/a\u003e Automatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/6f9a48b4048650341a654d9757da57fc1e3e323d\"\u003e\u003ccode\u003e6f9a48b\u003c/code\u003e\u003c/a\u003e Updated links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/00b9933e5821fd852700268767d4fd53ae1ce1cb\"\u003e\u003ccode\u003e00b9933\u003c/code\u003e\u003c/a\u003e Prepare 9.7.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/37683d12c9cd62309aa917237741ee0886709b7c\"\u003e\u003ccode\u003e37683d1\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/199e31598055d5d6ea538618804c7558f5d81047\"\u003e\u003ccode\u003e199e315\u003c/code\u003e\u003c/a\u003e Updated warning message to clarify relation to MkDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/10258334eb13545e6d708cf121c3867bfbdb6017\"\u003e\u003ccode\u003e1025833\u003c/code\u003e\u003c/a\u003e Limited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/1532f523f6c650c9d6fd16229ee8bec0759b4151\"\u003e\u003ccode\u003e1532f52\u003c/code\u003e\u003c/a\u003e Added update log to blog post\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/d0c8b2862a966f5f268d4a4c35bb4fcfccebb9b1\"\u003e\u003ccode\u003ed0c8b28\u003c/code\u003e\u003c/a\u003e Updated dependencies to fix vulnerabilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/71d48699a0e2bef231e796818c4dc20b230a5f45\"\u003e\u003ccode\u003e71d4869\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.7.1...9.7.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/cpp-linter/cpp-linter-rs/pull/361","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpp-linter%2Fcpp-linter-rs/issues/361","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/361/packages"}},{"old_version":"\u003e=0.5","new_version":"\u003e=0.6.1","update_type":null,"path":null,"pr_created_at":"2026-04-25T13:42:35.000Z","version_change":"\u003e=0.5 → \u003e=0.6.1","issue":{"uuid":"4328240168","node_id":"PR_kwDOQdG5ts7VmSvp","number":84,"state":"open","title":"build(deps): update mkdocs-gen-files requirement from \u003e=0.5 to \u003e=0.6.1","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-25T13:42:35.000Z","updated_at":"2026-04-25T13:43:05.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): update","packages":[{"name":"mkdocs-gen-files","old_version":"\u003e=0.5","new_version":"\u003e=0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/gmarupilla/AgroTerraFlow/pull/84","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gmarupilla%2FAgroTerraFlow/issues/84","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/84/packages"}},{"old_version":"0.6.0","new_version":"0.6.1","update_type":"patch","path":null,"pr_created_at":"2026-04-24T16:43:17.000Z","version_change":"0.6.0 → 0.6.1","issue":{"uuid":"4324336829","node_id":"PR_kwDOMFeZqs7VZ5R7","number":141,"state":"open","title":"python-deps(deps): bump the python-dependencies group across 1 directory with 40 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["dependabot[bot]"],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-24T16:43:17.000Z","updated_at":"2026-04-24T16:56:03.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"python-deps(deps): bump","group_name":"python-dependencies","update_count":40,"packages":[{"name":"black","old_version":"24.10.0","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"codespell","old_version":"2.4.1","new_version":"2.4.2","repository_url":"https://github.com/codespell-project/codespell"},{"name":"griffe","old_version":"1.15.0","new_version":"2.0.2","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"mkdocs-gen-files","old_version":"0.6.0","new_version":"0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-include-markdown-plugin","old_version":"7.2.1","new_version":"7.2.2","repository_url":"https://github.com/mondeja/mkdocs-include-markdown-plugin"},{"name":"mkdocs-literate-nav","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/oprypin/mkdocs-literate-nav"},{"name":"mkdocs-section-index","old_version":"0.3.10","new_version":"0.3.12","repository_url":"https://github.com/oprypin/mkdocs-section-index"},{"name":"mkdocstrings","old_version":"1.0.3","new_version":"1.0.4","repository_url":"https://github.com/mkdocstrings/mkdocstrings"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [protobuf](https://github.com/protocolbuffers/protobuf), [tm-data-types](https://github.com/tektronix/tm_data_types), [poetry-pre-commit-plugin](https://github.com/vstrimaitis/poetry-pre-commit-plugin), [pylint](https://github.com/pylint-dev/pylint), [pyright](https://github.com/RobertCraigie/pyright-python), [pyroma](https://github.com/regebro/pyroma), [wheel](https://github.com/pypa/wheel), [black](https://github.com/psf/black), [codespell](https://github.com/codespell-project/codespell), [griffe](https://github.com/mkdocstrings/griffe), [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files), [mkdocs-include-markdown-plugin](https://github.com/mondeja/mkdocs-include-markdown-plugin), [mkdocs-literate-nav](https://github.com/oprypin/mkdocs-literate-nav), [mkdocs-section-index](https://github.com/oprypin/mkdocs-section-index), [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings), [mkdocstrings-python](https://github.com/mkdocstrings/python), [packaging](https://github.com/pypa/packaging), [pydantic](https://github.com/pydantic/pydantic), [pygments](https://github.com/pygments/pygments), [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions), [requests](https://github.com/psf/requests), [tomli](https://github.com/hukkin/tomli), [coverage](https://github.com/coveragepy/coveragepy), [psutil](https://github.com/giampaolo/psutil), [pytest](https://github.com/pytest-dev/pytest), [pytest-cov](https://github.com/pytest-dev/pytest-cov), [pytest-env](https://github.com/pytest-dev/pytest-env), [certifi](https://github.com/certifi/python-certifi), [chardet](https://github.com/chardet/chardet), [charset-normalizer](https://github.com/jawah/charset_normalizer), [idna](https://github.com/kjd/idna), [pytz](https://github.com/stub42/pytz), [setuptools](https://github.com/pypa/setuptools), [click](https://github.com/pallets/click), [mkdocs-get-deps](https://github.com/mkdocs/get-deps), [more-itertools](https://github.com/more-itertools/more-itertools), [pathspec](https://github.com/cpburnz/python-pathspec), [platformdirs](https://github.com/tox-dev/platformdirs), [pydantic-core](https://github.com/pydantic/pydantic) and [typeguard](https://github.com/agronholm/typeguard) to permit the latest version.\nUpdates `protobuf` to 6.33.6\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tm-data-types` to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tektronix/tm_data_types/releases\"\u003etm-data-types's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev0.4.0 (2026-02-27)\u003c/h1\u003e\n\u003ch2\u003eMerged Pull Requests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003egh-actions(deps): bump the gh-actions-dependencies group with 12 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group with 7 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: update dependencies in requirements.txt and pyproject.toml for documentation builds (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egh-actions(deps): bump the gh-actions-dependencies group with 13 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate linting (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGanesh12/wfm file type check (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group across 1 directory with 15 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/148\"\u003e#148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Drop support for Python 3.9, since it is EOL (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/146\"\u003e#146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egh-actions(deps): bump tektronix/python-package-ci-cd (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/129\"\u003e#129\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003echeck_style()\u003c/code\u003e logic to properly detect Digital and IQ waveform file types in addition to Analog waveforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tektronix/tm_data_types/blob/main/CHANGELOG.md\"\u003etm-data-types's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.0 (2026-02-27)\u003c/h2\u003e\n\u003ch3\u003eMerged Pull Requests\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003egh-actions(deps): bump the gh-actions-dependencies group with 12 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group with 7 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: update dependencies in requirements.txt and pyproject.toml for documentation builds (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egh-actions(deps): bump the gh-actions-dependencies group with 13 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate linting (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGanesh12/wfm file type check (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group across 1 directory with 15 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/148\"\u003e#148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Drop support for Python 3.9, since it is EOL (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/146\"\u003e#146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egh-actions(deps): bump tektronix/python-package-ci-cd (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/129\"\u003e#129\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003echeck_style()\u003c/code\u003e logic to properly detect Digital and IQ waveform file types in addition to Analog waveforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003ev0.3.0 (2025-10-28)\u003c/h2\u003e\n\u003ch3\u003eMerged Pull Requests\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ewfm type detection (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/125\"\u003e#125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group with 6 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egh-actions(deps): bump tektronix/python-package-ci-cd (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/104\"\u003e#104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Update Mermaid library source to use CDN (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/116\"\u003e#116\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group with 5 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/112\"\u003e#112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: Correct formatting in glossary and update setuptools version in pre-commit config (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/111\"\u003e#111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003egh-actions(deps): bump actions/checkout (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/107\"\u003e#107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epython-deps(deps): bump the python-dependencies group with 8 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/105\"\u003e#105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved unused models (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/pull/101\"\u003e#101\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed WFM file type detection to correctly identify digital and IQ waveforms instead of always defaulting to analog waveforms\u003c/li\u003e\n\u003cli\u003eImproved metadata system error messages to provide helpful guidance when accessing custom metadata fields\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eset_custom_metadata()\u003c/code\u003e convenience method to \u003ccode\u003eWaveformMetaInfo\u003c/code\u003e classes for easier custom metadata management\u003c/li\u003e\n\u003cli\u003eAdded comprehensive docstrings to all metadata classes with practical examples and usage guidance\u003c/li\u003e\n\u003cli\u003eAdded helpful warnings in \u003ccode\u003eremap()\u003c/code\u003e method for unknown metadata fields\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/2522357ff0fa2a9cc2e8a8c3b59165e53a215279\"\u003e\u003ccode\u003e2522357\u003c/code\u003e\u003c/a\u003e 0.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/9b3631f494b7bcc9a6927bfc59a66990dfddbcd7\"\u003e\u003ccode\u003e9b3631f\u003c/code\u003e\u003c/a\u003e gh-actions(deps): bump the gh-actions-dependencies group with 12 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/issues/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/e7834eb32dbd214861238ab54ebb8a044074b69e\"\u003e\u003ccode\u003ee7834eb\u003c/code\u003e\u003c/a\u003e python-deps(deps): bump the python-dependencies group with 7 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/issues/155\"\u003e#155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/c75d072446cdbf8b74c181338baafaa0d771cd26\"\u003e\u003ccode\u003ec75d072\u003c/code\u003e\u003c/a\u003e python-deps(deps): bump the python-dependencies group with 7 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/a8a10483514af0e0bd89258051dc5ff973736fff\"\u003e\u003ccode\u003ea8a1048\u003c/code\u003e\u003c/a\u003e chore: update dependencies in requirements.txt and pyproject.toml for documen...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/a52bb475c24269b05542f6ba1766cd3f65953f80\"\u003e\u003ccode\u003ea52bb47\u003c/code\u003e\u003c/a\u003e gh-actions(deps): bump the gh-actions-dependencies group with 13 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/issues/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/94e3d037c3145f69f651a744f996ba53fb9a4ea1\"\u003e\u003ccode\u003e94e3d03\u003c/code\u003e\u003c/a\u003e python-deps(deps): bump the python-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/f160125524bceabb9f5a0b4f5338edeb0d125dd8\"\u003e\u003ccode\u003ef160125\u003c/code\u003e\u003c/a\u003e Update linting (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/84c847061bac51530b3fd2fac3a0ad9f18123ebd\"\u003e\u003ccode\u003e84c8470\u003c/code\u003e\u003c/a\u003e Ganesh12/wfm file type check (\u003ca href=\"https://redirect.github.com/tektronix/tm_data_types/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tektronix/tm_data_types/commit/f5abd4397d4a09ecd9239d9d3a5b1d0cb638ab2f\"\u003e\u003ccode\u003ef5abd43\u003c/code\u003e\u003c/a\u003e python-deps(deps): bump the python-dependencies group across 1 directory with...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tektronix/tm_data_types/compare/v0.2.0...v0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `poetry-pre-commit-plugin` to 0.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vstrimaitis/poetry-pre-commit-plugin/releases\"\u003epoetry-pre-commit-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.2.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix pre-commit not found  by \u003ca href=\"https://github.com/kohlerj\"\u003e\u003ccode\u003e@​kohlerj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/vstrimaitis/poetry-pre-commit-plugin/pull/10\"\u003evstrimaitis/poetry-pre-commit-plugin#10\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/vstrimaitis/poetry-pre-commit-plugin/compare/0.2.1...0.2.2\"\u003ehttps://github.com/vstrimaitis/poetry-pre-commit-plugin/compare/0.2.1...0.2.2\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/vstrimaitis/poetry-pre-commit-plugin/commit/b7834a2ef97dfa7a649be1b3786d066a4587b556\"\u003e\u003ccode\u003eb7834a2\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vstrimaitis/poetry-pre-commit-plugin/commit/5800969cff9ac788074d1a6063504cff83dfc1ed\"\u003e\u003ccode\u003e5800969\u003c/code\u003e\u003c/a\u003e Fix pre-commit not found  (\u003ca href=\"https://redirect.github.com/vstrimaitis/poetry-pre-commit-plugin/issues/10\"\u003e#10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vstrimaitis/poetry-pre-commit-plugin/commit/96d3dff56aed4eac68743af8e532d00cc1ef4862\"\u003e\u003ccode\u003e96d3dff\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vstrimaitis/poetry-pre-commit-plugin/commit/3b0e8603af114d1baa7e90b1a36062698b6659a1\"\u003e\u003ccode\u003e3b0e860\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vstrimaitis/poetry-pre-commit-plugin/commit/e3029cf4de93906577c8f1fcf6ef8f7479eb7cba\"\u003e\u003ccode\u003ee3029cf\u003c/code\u003e\u003c/a\u003e Revert back to standard dependency version requirements (\u003ca href=\"https://redirect.github.com/vstrimaitis/poetry-pre-commit-plugin/issues/9\"\u003e#9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vstrimaitis/poetry-pre-commit-plugin/commit/4726425ee7e0bc4311e749ff09689a0245902a4c\"\u003e\u003ccode\u003e4726425\u003c/code\u003e\u003c/a\u003e Compatibility with poetry 2.0.0 (\u003ca href=\"https://redirect.github.com/vstrimaitis/poetry-pre-commit-plugin/issues/8\"\u003e#8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vstrimaitis/poetry-pre-commit-plugin/commit/23d47afb4201c2a756272debd25b6d2b0959f24a\"\u003e\u003ccode\u003e23d47af\u003c/code\u003e\u003c/a\u003e Fix badge\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/vstrimaitis/poetry-pre-commit-plugin/compare/0.1.2...0.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pylint` to 4.0.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/88e1ab7545a4af4aea15c305a154c164a95ab842\"\u003e\u003ccode\u003e88e1ab7\u003c/code\u003e\u003c/a\u003e Bump pylint to 4.0.5, update changelog (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10860\"\u003e#10860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/d96d489a1743d32b6bfa53fc0f69a4333209a146\"\u003e\u003ccode\u003ed96d489\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Relax isort version constraint to allow isort 8 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/0b08ccb014c265700f244a885bdcbdfa3a03de46\"\u003e\u003ccode\u003e0b08ccb\u003c/code\u003e\u003c/a\u003e Fix dynamic color mapping for \u0026quot;fail-on\u0026quot; messages when using multiple reporter...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/154dba43276e8232a2e1cb8f90bfcc63886f3460\"\u003e\u003ccode\u003e154dba4\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix FP for \u003ccode\u003einvalid-name\u003c/code\u003e with \u003ccode\u003etyping.Final\u003c/code\u003e on...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/7b73bfdedf275935b9c5b43a6aeda5cc648b4847\"\u003e\u003ccode\u003e7b73bfd\u003c/code\u003e\u003c/a\u003e Disable unspecified-encoding for py-version above Python 3.15 (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10800\"\u003e#10800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/4cc98be8b7786dbc6692493fe9cedb8585af5518\"\u003e\u003ccode\u003e4cc98be\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix setting options for import order checker (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/f0d30a27b510d69f846e3aaa0054cf0a1412923c\"\u003e\u003ccode\u003ef0d30a2\u003c/code\u003e\u003c/a\u003e Sync astroid version with requirements file again\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/38bdf024648724e6aea017e62d3b57cb44097ec3\"\u003e\u003ccode\u003e38bdf02\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix \u003ccode\u003elogging-unsupported-format\u003c/code\u003e when logging ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/f08c33ae3e691eed868e49c0d15270dc6e6a0d6c\"\u003e\u003ccode\u003ef08c33a\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Properly detect \u003ccode\u003eself.fail()\u003c/code\u003e as a terminating...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/e16f942166511d6fb4427e503a734152fae0c4fe\"\u003e\u003ccode\u003ee16f942\u003c/code\u003e\u003c/a\u003e Bump pylint to 4.0.4, update changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pylint-dev/pylint/compare/v3.3.7...v4.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` to 1.1.409\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/d7508e5425d3d02761d70dab1f9a2086573af429\"\u003e\u003ccode\u003ed7508e5\u003c/code\u003e\u003c/a\u003e [pyright updated to 1.1.409] Update Version (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/81b795a41ddcc3c77218d8c8e406983e39852285\"\u003e\u003ccode\u003e81b795a\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.408 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/53e8efb4638daca6c541d18ad35dafb0e5d9f34d\"\u003e\u003ccode\u003e53e8efb\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.407 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/1d515b71299f9dc4c066ce37e673d93bda4bc2df\"\u003e\u003ccode\u003e1d515b7\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.406 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/e211ec8df8d389a147af6d31bdb2bc812f04aa5a\"\u003e\u003ccode\u003ee211ec8\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.405 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/d393df1703a808473b84bd14a2702f4793014031\"\u003e\u003ccode\u003ed393df1\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.404 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/352\"\u003e#352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/047488f6b38c6bd59e43daf838b2863b6cab9008\"\u003e\u003ccode\u003e047488f\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.403 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.402...v1.1.409\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyroma` to 5.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/regebro/pyroma/blob/master/CHANGES.txt\"\u003epyroma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.1 (2025-12-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003echeck-manifest was missing from the requirements list.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePassing in multiple tests to be skipped now actually works. [Matt Norton]\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0 (2025-07-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRe-releasing as final.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0b2 (2025-07-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug that failed to find license-expression fields.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0b1 (2025-07-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the internal metadata names to match Core Metadata. This brings\nless confusion, especially since setuptools and PyPI aren't exactly the\nsame either, so let's pick the offical standard and run with it.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a rating for if the wheel fails to build. Unfortunately it's\nimpossible to get a proper error out of it, so the message tells\nyou to run python -m build.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0a1 (2025-07-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved support for fetching data via monkey-patching setup.py.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a warning if you have only a setup.cfg, something that is\nworking with some tools, but is not officially supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSome general cleanups and simplifications thanks to those changes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.3 (2025-07-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLicensing specifications are less flexible than I thought.\nUpdated to reflect that.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/dd478a67d029502036973a9f596ec4b2c0614bf7\"\u003e\u003ccode\u003edd478a6\u003c/code\u003e\u003c/a\u003e Preparing release 5.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/347aee88c82a62fb7648ff46d2c5cc4974e80e7e\"\u003e\u003ccode\u003e347aee8\u003c/code\u003e\u003c/a\u003e Comments, updates, contributor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/edc73191ae1f0fb1db50a3915436aba29c131e59\"\u003e\u003ccode\u003eedc7319\u003c/code\u003e\u003c/a\u003e Fix only skipping last listed test in CLI arg (\u003ca href=\"https://redirect.github.com/regebro/pyroma/issues/122\"\u003e#122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/fe721451f6acdc92a2429f0f4cc58863f6b9b2b2\"\u003e\u003ccode\u003efe72145\u003c/code\u003e\u003c/a\u003e Updated GitHub Actions (\u003ca href=\"https://redirect.github.com/regebro/pyroma/issues/119\"\u003e#119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/e3acb372d5ab05111476e41ec0a2c2481cdd5c22\"\u003e\u003ccode\u003ee3acb37\u003c/code\u003e\u003c/a\u003e Switch to tox in make as well (\u003ca href=\"https://redirect.github.com/regebro/pyroma/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/9723f4105df27e5fc7b80dbff21a7ba546408b25\"\u003e\u003ccode\u003e9723f41\u003c/code\u003e\u003c/a\u003e Fixed typo (\u003ca href=\"https://redirect.github.com/regebro/pyroma/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/8ee23ca7c5a8d86bcc2f62f55fc11d89bd72f877\"\u003e\u003ccode\u003e8ee23ca\u003c/code\u003e\u003c/a\u003e Back to development: 5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/919b6884afaf151b99a7fcbf255589cdf1b7a567\"\u003e\u003ccode\u003e919b688\u003c/code\u003e\u003c/a\u003e Preparing release 5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/941bcf7cb01ff34c4f31183931e233853b2a4fec\"\u003e\u003ccode\u003e941bcf7\u003c/code\u003e\u003c/a\u003e Pyroma version is now too old.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/regebro/pyroma/commit/c139ee504e9cb6a2b7d7b857853dbb1802b5e8f8\"\u003e\u003ccode\u003ec139ee5\u003c/code\u003e\u003c/a\u003e Pyroma 5.0 (\u003ca href=\"https://redirect.github.com/regebro/pyroma/issues/112\"\u003e#112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/regebro/pyroma/compare/4.2...5.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `wheel` to 0.47.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/releases\"\u003ewheel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.47.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003ewheel info\u003c/code\u003e subcommand to display metadata about wheel files without unpacking them (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/639\"\u003e#639\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eWheelFile\u003c/code\u003e raising \u003ccode\u003eMissing RECORD file\u003c/code\u003e when the wheel filename contains uppercase characters (e.g. \u003ccode\u003eDjango-3.2.5.whl\u003c/code\u003e) but the \u003ccode\u003e.dist-info\u003c/code\u003e directory inside uses normalized lowercase naming (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/blob/main/docs/news.rst\"\u003ewheel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease Notes\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003e0.47.0 (2026-04-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003ewheel info\u003c/code\u003e subcommand to display metadata about wheel files without\nunpacking them (\u003ccode\u003e[#639](https://github.com/pypa/wheel/issues/639) \u0026lt;https://github.com/pypa/wheel/issues/639\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eWheelFile\u003c/code\u003e raising \u003ccode\u003eMissing RECORD file\u003c/code\u003e when the wheel filename contains\nuppercase characters (e.g. \u003ccode\u003eDjango-3.2.5.whl\u003c/code\u003e) but the \u003ccode\u003e.dist-info\u003c/code\u003e directory\ninside uses normalized lowercase naming\n(\u003ccode\u003e[#411](https://github.com/pypa/wheel/issues/411) \u0026lt;https://github.com/pypa/wheel/issues/411\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.3 (2026-01-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eImportError: cannot import name '_setuptools_logging' from 'wheel'\u003c/code\u003e when\ninstalled alongside an old version of setuptools and running the \u003ccode\u003ebdist_wheel\u003c/code\u003e\ncommand (\u003ccode\u003e[#676](https://github.com/pypa/wheel/issues/676) \u0026lt;https://github.com/pypa/wheel/issues/676\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.2 (2026-01-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestored the \u003ccode\u003ebdist_wheel\u003c/code\u003e command for compatibility with \u003ccode\u003esetuptools\u003c/code\u003e older than\nv70.1\u003c/li\u003e\n\u003cli\u003eImporting \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e instead of a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel unpack\u003c/code\u003e potentially altering the permissions of files outside of the\ndestination tree with maliciously crafted wheels (CVE-2026-24049)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.1 (2025-04-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTemporarily restored the \u003ccode\u003ewheel.macosx_libfile\u003c/code\u003e module\n(\u003ccode\u003e[#659](https://github.com/pypa/wheel/issues/659) \u0026lt;https://github.com/pypa/wheel/issues/659\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.0 (2025-04-03)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003ebdist_wheel\u003c/code\u003e setuptools command implementation and entry point.\nThe \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e module is now just an alias to\n\u003ccode\u003esetuptools.command.bdist_wheel\u003c/code\u003e, emitting a deprecation warning on import.\u003c/li\u003e\n\u003cli\u003eRemoved vendored \u003ccode\u003epackaging\u003c/code\u003e in favor of a run-time dependency on it\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.metadata\u003c/code\u003e module private (with a deprecation warning if it's\nimported\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.cli\u003c/code\u003e package private (no deprecation warning)\u003c/li\u003e\n\u003cli\u003eFixed an exception when calling the \u003ccode\u003econvert\u003c/code\u003e command with an empty description\nfield\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.1 (2024-11-23)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed pure Python wheels converted from eggs and wininst files having the ABI tag in\nthe file name\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/efd83a750f07a33462ea2eed365fd8dac9e51442\"\u003e\u003ccode\u003eefd83a7\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/bb69216d35588c2a0febc2d9a130727fe6e46ee3\"\u003e\u003ccode\u003ebb69216\u003c/code\u003e\u003c/a\u003e Reordered the changelog entries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/d5a1763ce927618bfa7d82abe334d0d14a93cc37\"\u003e\u003ccode\u003ed5a1763\u003c/code\u003e\u003c/a\u003e fix(wheelfile): resolve .dist-info path case-insensitively when reading wheel...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/5718957928ece25eb0d1c12023c71dea4fcb5cf9\"\u003e\u003ccode\u003e5718957\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/625806845ae5756be3cc0f9d44832c29079c0954\"\u003e\u003ccode\u003e6258068\u003c/code\u003e\u003c/a\u003e chore: log_level is better than log_cli_level (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/684\"\u003e#684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/2975debc789682b3a448b134611acc6962a93eb3\"\u003e\u003ccode\u003e2975deb\u003c/code\u003e\u003c/a\u003e Require tox \u0026gt;= 4.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/47674ba770e5ee72d679b7eb32b558e0c177640d\"\u003e\u003ccode\u003e47674ba\u003c/code\u003e\u003c/a\u003e chore: add check-sdist to checks (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/681\"\u003e#681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/56223f6f8dfa8d3d40923f24dcf159204698d7b6\"\u003e\u003ccode\u003e56223f6\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e__package__\u003c/code\u003e → \u003ccode\u003e__spec__.parent\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/679\"\u003e#679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/0ce509e02dc3cd1b7b0bdf868482de062b3c21c3\"\u003e\u003ccode\u003e0ce509e\u003c/code\u003e\u003c/a\u003e Added the wheel info subcommand (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/39039c0f3446c1ed5ec52621e98bc2bad8178a06\"\u003e\u003ccode\u003e39039c0\u003c/code\u003e\u003c/a\u003e Improved the index page\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/wheel/compare/0.46.3...0.47.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 24.10.0 to 26.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop evenloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop eventloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\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/c6755bb741b6481d6b3d3bb563c83fa060db96c9\"\u003e\u003ccode\u003ec6755bb\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5046\"\u003e#5046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69973fd6950985fbeb1090d96da717dc4d8380b0\"\u003e\u003ccode\u003e69973fd\u003c/code\u003e\u003c/a\u003e Harden blackd browser-facing request handling (\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4937fe6cf241139ddbfc16b0bdbb5b422798909d\"\u003e\u003ccode\u003e4937fe6\u003c/code\u003e\u003c/a\u003e Fix some shenanigans with the cache file and IPython (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2e641d174469c505d5ae905e75d4c769597e681f\"\u003e\u003ccode\u003e2e641d1\u003c/code\u003e\u003c/a\u003e docs: remove outdated Black Playground references (\u003ca href=\"https://redirect.github.com/psf/black/issues/5044\"\u003e#5044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c014b22a2d5e0632587b47b81151658bddfa0b88\"\u003e\u003ccode\u003ec014b22\u003c/code\u003e\u003c/a\u003e Remove unused internal code (\u003ca href=\"https://redirect.github.com/psf/black/issues/5041\"\u003e#5041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0dae20b2d009f2f03de8696d06b0c947d3abafc9\"\u003e\u003ccode\u003e0dae20b\u003c/code\u003e\u003c/a\u003e Add new changelog (\u003ca href=\"https://redirect.github.com/psf/black/issues/5036\"\u003e#5036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c5c1cbddd92cecb554ac2a77a24139dd76831030\"\u003e\u003ccode\u003ec5c1cbd\u003c/code\u003e\u003c/a\u003e Minor release patches (\u003ca href=\"https://redirect.github.com/psf/black/issues/5035\"\u003e#5035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7e5a828c37d71b6a6666e28eed444816def6a8f4\"\u003e\u003ccode\u003e7e5a828\u003c/code\u003e\u003c/a\u003e docs: clarify relationship between Black style and PEP 8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5025\"\u003e#5025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69705deb8776e7c5e585668da106d1abe2cb8d77\"\u003e\u003ccode\u003e69705de\u003c/code\u003e\u003c/a\u003e docs: add clearer pyproject configuration guidance (\u003ca href=\"https://redirect.github.com/psf/black/issues/5026\"\u003e#5026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/35ea67920b7f6ac8e09be1c47278752b1e827f76\"\u003e\u003ccode\u003e35ea679\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5032\"\u003e#5032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/24.10.0...26.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `codespell` from 2.4.1 to 2.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codespell-project/codespell/releases\"\u003ecodespell's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with chardet 7+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix and clarify cases in ignore patterns by \u003ca href=\"https://github.com/DanielYang59\"\u003e\u003ccode\u003e@​DanielYang59\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3583\"\u003ecodespell-project/codespell#3583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecodespell-private.yml: Do not codespell digital signature files by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3623\"\u003ecodespell-project/codespell#3623\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/codespell-project/codespell/pull/3634\"\u003ecodespell-project/codespell#3634\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enumbes-\u0026gt;numbers and numbesr-\u0026gt;numbers by \u003ca href=\"https://github.com/skshetry\"\u003e\u003ccode\u003e@​skshetry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3635\"\u003ecodespell-project/codespell#3635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling corrections for disclose and variables. by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3622\"\u003ecodespell-project/codespell#3622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling correction for Vulnererability and variants. by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3625\"\u003ecodespell-project/codespell#3625\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove lets-\u0026gt;let's by \u003ca href=\"https://github.com/Piedone\"\u003e\u003ccode\u003e@​Piedone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3633\"\u003ecodespell-project/codespell#3633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd corrections for \u0026quot;dictate\u0026quot; by \u003ca href=\"https://github.com/jdufresne\"\u003e\u003ccode\u003e@​jdufresne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3636\"\u003ecodespell-project/codespell#3636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd specicification (and pl) typo by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3639\"\u003ecodespell-project/codespell#3639\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;blueish\u0026quot; correction by \u003ca href=\"https://github.com/hadess\"\u003e\u003ccode\u003e@​hadess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3510\"\u003ecodespell-project/codespell#3510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u0026quot;lighting\u0026quot; as an option to fix \u0026quot;lighning\u0026quot; by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3648\"\u003ecodespell-project/codespell#3648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert adding \u003ccode\u003elien\u003c/code\u003e to the rare dictionary  by \u003ca href=\"https://github.com/nikolaik\"\u003e\u003ccode\u003e@​nikolaik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3631\"\u003ecodespell-project/codespell#3631\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u0026quot;ane\u0026quot; could have been \u0026quot;one\u0026quot; by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3645\"\u003ecodespell-project/codespell#3645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling correction for \u0026quot;priort\u0026quot; by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3647\"\u003ecodespell-project/codespell#3647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;fix\u0026quot; of \u0026quot;deques\u0026quot; - it is quite legit by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3649\"\u003ecodespell-project/codespell#3649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral new suggestions by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3621\"\u003ecodespell-project/codespell#3621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd proposal constraints to containts by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3652\"\u003ecodespell-project/codespell#3652\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditions dleay,infp,practive,utiliy by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3643\"\u003ecodespell-project/codespell#3643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd calncelled and its variations by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3650\"\u003ecodespell-project/codespell#3650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse raw strings for regex by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3654\"\u003ecodespell-project/codespell#3654\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow multiple spaces before codespell:ignore by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3653\"\u003ecodespell-project/codespell#3653\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded correction from \u003ccode\u003etimeour\u003c/code\u003e to \u003ccode\u003etimeout\u003c/code\u003e by \u003ca href=\"https://github.com/jamesbraza\"\u003e\u003ccode\u003e@​jamesbraza\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3656\"\u003ecodespell-project/codespell#3656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd typos found in various software projects by \u003ca href=\"https://github.com/luzpaz\"\u003e\u003ccode\u003e@​luzpaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3640\"\u003ecodespell-project/codespell#3640\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/codespell-project/codespell/pull/3659\"\u003ecodespell-project/codespell#3659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd codespell suggestions for enabke and friends by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3657\"\u003ecodespell-project/codespell#3657\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEND: add \u0026quot;queues\u0026quot; (plural from queue) as possible fix for ques by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3591\"\u003ecodespell-project/codespell#3591\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eagreegate, lesda, realod, colouer by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3665\"\u003ecodespell-project/codespell#3665\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit version in documentation by \u003ca href=\"https://github.com/prchoward\"\u003e\u003ccode\u003e@​prchoward\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3666\"\u003ecodespell-project/codespell#3666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMAINT: Rename CI file and run name by \u003ca href=\"https://github.com/larsoner\"\u003e\u003ccode\u003e@​larsoner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3667\"\u003ecodespell-project/codespell#3667\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epreoccuption-\u0026gt;preoccupation; occuption-\u0026gt;occupation by \u003ca href=\"https://github.com/TheGiraffe3\"\u003e\u003ccode\u003e@​TheGiraffe3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3668\"\u003ecodespell-project/codespell#3668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSuggestions for: checkto, diminsion, waitfor by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3670\"\u003ecodespell-project/codespell#3670\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTypos found in sigstore-python by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3664\"\u003ecodespell-project/codespell#3664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eusgin-\u0026gt;using by \u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3672\"\u003ecodespell-project/codespell#3672\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd typos found in various software projects by \u003ca href=\"https://github.com/luzpaz\"\u003e\u003ccode\u003e@​luzpaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3669\"\u003ecodespell-project/codespell#3669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd coered -\u0026gt; coerced by \u003ca href=\"https://github.com/effigies\"\u003e\u003ccode\u003e@​effigies\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3680\"\u003ecodespell-project/codespell#3680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebackwward(s)-\u0026gt;backward(s), onwward(s)-\u0026gt;onward(s) by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3682\"\u003ecodespell-project/codespell#3682\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/codespell-project/codespell/pull/3685\"\u003ecodespell-project/codespell#3685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etelemetery-\u0026gt;telemetry by \u003ca href=\"https://github.com/august-soderberg\"\u003e\u003ccode\u003e@​august-soderberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3686\"\u003ecodespell-project/codespell#3686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd hexedacimal and similar typos by \u003ca href=\"https://github.com/Akuli\"\u003e\u003ccode\u003e@​Akuli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3692\"\u003ecodespell-project/codespell#3692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd rounted-\u0026gt;routed, rounded and friends by \u003ca href=\"https://github.com/peternewman\"\u003e\u003ccode\u003e@​peternewman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3693\"\u003ecodespell-project/codespell#3693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd symmectric and similar typos by \u003ca href=\"https://github.com/Akuli\"\u003e\u003ccode\u003e@​Akuli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3694\"\u003ecodespell-project/codespell#3694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI on Windows: pip upgrade pip by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3698\"\u003ecodespell-project/codespell#3698\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/codespell-project/codespell/commit/2ccb47ff45ad361a21071a7eedda4c37e6ae8c5a\"\u003e\u003ccode\u003e2ccb47f\u003c/code\u003e\u003c/a\u003e Compat with chardet 7 (\u003ca href=\"https://redirect.github.com/codespell-project/codespell/issues/3886\"\u003e#3886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/4ec53bf6a3e510c64900d5ee838abd99d49b2910\"\u003e\u003ccode\u003e4ec53bf\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/2a4acba3f282f1b5ccb7ad8b57bc991810663a44\"\u003e\u003ccode\u003e2a4acba\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/be17cacc96a5ee3f014e048f5962cfdb7145e096\"\u003e\u003ccode\u003ebe17cac\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/04a071280d56148cab14249ccc8d4181c0066b3c\"\u003e\u003ccode\u003e04a0712\u003c/code\u003e\u003c/a\u003e Bump ruff (\u003ca href=\"https://redirect.github.com/codespell-project/codespell/issues/3879\"\u003e#3879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/583d8796d92eb58e15072db03e5b756be45f638a\"\u003e\u003ccode\u003e583d879\u003c/code\u003e\u003c/a\u003e avoide-\u0026gt;avoid, avoided, avoids,\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/1f59f34d7c6d1642fdb325d9dfa49cf9eb5f692a\"\u003e\u003ccode\u003e1f59f34\u003c/code\u003e\u003c/a\u003e Add correction for 'foudation' to 'foundation'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/e047fdafb8620b08a86349014487886bcd9c2205\"\u003e\u003ccode\u003ee047fda\u003c/code\u003e\u003c/a\u003e Add spelling correction for gather and variants.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/b5cd66de14b8f65b0f45fabbe1c89bd69ea60939\"\u003e\u003ccode\u003eb5cd66d\u003c/code\u003e\u003c/a\u003e respondant-\u0026gt;respondent\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/92125a3814fa6e86cd2055385916ce5186d3e5df\"\u003e\u003ccode\u003e92125a3\u003c/code\u003e\u003c/a\u003e Add detection of ivoice and variants.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/codespell-project/codespell/compare/v2.4.1...v2.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 1.15.0 to 2.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.2\"\u003e2.0.2\u003c/a\u003e - 2026-03-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.1...2.0.2\"\u003eCompare with 2.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBuild\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd py.typed marker to packages (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce46ba314810e46c5168cfab220254908640d6e3\"\u003ece46ba3\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2026-03-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting type parameters through aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/75c1236078bdb38ccaf95330d3c635f8db3806b7\"\u003e75c1236\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/449\"\u003eIssue-449\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/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.2\"\u003e2.0.2\u003c/a\u003e - 2026-03-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.1...2.0.2\"\u003eCompare with 2.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBuild\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd py.typed marker to packages (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce46ba314810e46c5168cfab220254908640d6e3\"\u003ece46ba3\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2026-03-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting type parameters through aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/75c1236078bdb38ccaf95330d3c635f8db3806b7\"\u003e75c1236\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/449\"\u003eIssue-449\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.0\"\u003e2.0.0\u003c/a\u003e - 2026-02-09\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.15.0...2.0.0\"\u003eCompare with 1.15.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cp\u003eThis version removes previously deprecated API:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eExportedName\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003einfer_docstring_style(options)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eparse_auto(options)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eparse_google(options)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eparse_numpy(options)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eparse_sphinx(options)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eassert_git_repo\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eget_latest_tag\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eget_repo_root\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003etmp_worktree\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport merging overload annotations into implementation (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/584cdb52c93d4cdc02f2093f545c6c780491357e\"\u003e584cdb5\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/442\"\u003eIssue-442\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/443\"\u003ePR-443\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for PEP 750 template strings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/59266a9efadd3264b4a0da4b01792703097f5834\"\u003e59266a9\u003c/a\u003e by ellie). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/440\"\u003ePR-440\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKeep newlines in parameter (and other multiline directives) descriptions in Sphinx docstrings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1fde0d2317c9098055ab313c8a0a992032194830\"\u003e1fde0d2\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/808\"\u003eIssue-mkdocstrings-808\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/438\"\u003ePR-438\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003egriffe\u003c/code\u003e imports lazy in CLI (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/4772456ec728a415c52041c542ed3fd28a95b981\"\u003e4772456\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eSplit to \u003ccode\u003egriffe\u003c/code\u003e, \u003ccode\u003egriffecli\u003c/code\u003e and \u003ccode\u003egriffelib\u003c/code\u003e uv workspaces (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/162c31c230d22eb87cea4ec38ed4778bbe990103\"\u003e162c31c\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/408\"\u003eIssue-408\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/434\"\u003ePR-434\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove deprecated code (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/dcb075e278319a523e87fd0ae3ca5d21537d665f\"\u003edcb075e\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/433\"\u003ePR-433\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/griffe/commit/6f30ebb60f11c419c2b0c703faa09163a39552a3\"\u003e\u003ccode\u003e6f30ebb\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce46ba314810e46c5168cfab220254908640d6e3\"\u003e\u003ccode\u003ece46ba3\u003c/code\u003e\u003c/a\u003e build: Add py.typed marker to packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/006282cf920109782fec91f9b5c4437cfbd02bac\"\u003e\u003ccode\u003e006282c\u003c/code\u003e\u003c/a\u003e chore: Fix publish duty\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8df2c4061d01f8c7a3ded03d63505fef0052092a\"\u003e\u003ccode\u003e8df2c40\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1236192681a9492133efd01bcd77d018fa3d4630\"\u003e\u003ccode\u003e1236192\u003c/code\u003e\u003c/a\u003e chore: Update ty comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/75c1236078bdb38ccaf95330d3c635f8db3806b7\"\u003e\u003ccode\u003e75c1236\u003c/code\u003e\u003c/a\u003e fix: Allow setting type parameters through aliases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/862a891818d7182204e213ef216b6b5f3c6dc106\"\u003e\u003ccode\u003e862a891\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2666aaabe9b93f70c3dcde46ac284251a065a5c1\"\u003e\u003ccode\u003e2666aaa\u003c/code\u003e\u003c/a\u003e chore: Update sponsors section in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/e30c32143149ab124f3ade14523201b80a9cbfd9\"\u003e\u003ccode\u003ee30c321\u003c/code\u003e\u003c/a\u003e style: Format code for Python 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/051394aa21cd0884a7480a6892c07d62bf0ca451\"\u003e\u003ccode\u003e051394a\u003c/code\u003e\u003c/a\u003e chore: Add back title to type-check duty\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.15.0...2.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.6.0 to 0.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-include-markdown-plugin` from 7.2.1 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/releases\"\u003emkdocs-include-markdown-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.2.2\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix natural order by extension not correctly applied\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/98cf8e8dee370cf332ed00cd8426d2ffcfa07065\"\u003e\u003ccode\u003e98cf8e8\u003c/code\u003e\u003c/a\u003e Fix natural order by extension not correctly applied (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/292\"\u003e#292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/compare/v7.2.1...v7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-literate-nav` from 0.6.2 to 0.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/releases\"\u003emkdocs-literate-nav's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/pull/39\"\u003eoprypin/mkdocs-literate-nav#39\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ehttps://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.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/oprypin/mkdocs-literate-nav/commit/b91268c263f61e38a7e27f77ccf38ec287e0c0b5\"\u003e\u003ccode\u003eb91268c\u003c/code\u003e\u003c/a\u003e v0.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/cee9ec49a1523036081378a39bda9fa014432526\"\u003e\u003ccode\u003ecee9ec4\u003c/code\u003e\u003c/a\u003e Exclude properdocs when testing minimal dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/ea523f5864f59fb7939f84cd4400df67280ad52c\"\u003e\u003ccode\u003eea523f5\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/258b15a15a3e25cedc816d0a5a971acfdb86541e\"\u003e\u003ccode\u003e258b15a\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-section-index` from 0.3.10 to 0.3.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/releases\"\u003emkdocs-section-index's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeclare support of \u003ca href=\"https://pypi.org/project/properdocs-theme-readthedocs/\"\u003eproperdocs-theme-readthedocs\u003c/a\u003e, such that there is no warning printed for it - \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/fefc63086bfe41d0bd91f7541721ab4f96db25dc\"\u003ehttps://github.com/oprypin/mkdocs-section-index/commit/fefc63086bfe41d0bd91f7541721ab4f96db25dc\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.11...v0.3.12\"\u003ehttps://github.com/oprypin/mkdocs-section-index/compare/v0.3.11...v0.3.12\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/pull/27\"\u003eoprypin/mkdocs-section-index#27\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ehttps://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\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/oprypin/mkdocs-section-index/commit/869bbda96ac29b178cddfff57cabe8884563afde\"\u003e\u003ccode\u003e869bbda\u003c/code\u003e\u003c/a\u003e v0.3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/5ec1820d48bed54a880405edc93f1ce682e004d6\"\u003e\u003ccode\u003e5ec1820\u003c/code\u003e\u003c/a\u003e Fix a doc link so it doesn't only work on GitHub\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/2a898e8022f22bfd86ba5b8c60e0b0a0cc6089e9\"\u003e\u003ccode\u003e2a898e8\u003c/code\u003e\u003c/a\u003e Update docs dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/fefc63086bfe41d0bd91f7541721ab4f96db25dc\"\u003e\u003ccode\u003efefc630\u003c/code\u003e\u003c/a\u003e Declare support of properdocs-theme-readthedocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/4d758be189becb315f12607146737c83ca922a3b\"\u003e\u003ccode\u003e4d758be\u003c/code\u003e\u003c/a\u003e Update deps, enable more lints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/8cea221e6781c7e616cba249f46c957408a91590\"\u003e\u003ccode\u003e8cea221\u003c/code\u003e\u003c/a\u003e Drop Python 3.9, switch doc building to ProperDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/a8235f6f8eb5927b966a3aaea8afe5fa161ecece\"\u003e\u003ccode\u003ea8235f6\u003c/code\u003e\u003c/a\u003e v0.3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/ac66dfda53834d79ce8e0af6f340dddd7cde2bf9\"\u003e\u003ccode\u003eac66dfd\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/issues/27\"\u003e#27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/32866cd83993ee3eefbac0fcc13911692796d8f6\"\u003e\u003ccode\u003e32866cd\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocstrings` from 1.0.3 to 1.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.4\"\u003e1.0.4\u003c/a\u003e - 2026-04-15\u003c/h2\u003e\n\u003cp\u003e\u003c!-- ra...\n\n_Description has been truncated_","html_url":"https://github.com/tektronix/TekHSI/pull/141","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tektronix%2FTekHSI/issues/141","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/141/packages"}},{"old_version":"\u003e=0.5","new_version":"\u003e=0.6.1","update_type":null,"path":null,"pr_created_at":"2026-04-13T21:11:49.000Z","version_change":"\u003e=0.5 → \u003e=0.6.1","issue":{"uuid":"4257918809","node_id":"PR_kwDOMKklas7SHoUQ","number":148,"state":"closed","title":"Update mkdocs-gen-files requirement from \u003e=0.5 to \u003e=0.6.1","user":"dependabot[bot]","labels":["Add/Change dependencies","dependencies","python","Change Linters Configuration"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-18T08:58:10.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T21:11:49.000Z","updated_at":"2026-04-18T08:58:19.000Z","time_to_close":387981,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"mkdocs-gen-files","old_version":"\u003e=0.5","new_version":"\u003e=0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/bitcaster-io/bitcaster/pull/148","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitcaster-io%2Fbitcaster/issues/148","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/148/packages"}},{"old_version":"~=0.5.0","new_version":"\u003e=0.5,\u003c0.7","update_type":"patch","path":null,"pr_created_at":"2026-04-13T13:22:10.000Z","version_change":"~=0.5.0 → \u003e=0.5,\u003c0.7","issue":{"uuid":"4255029634","node_id":"PR_kwDOOWSacc7R_XND","number":403,"state":"closed","title":"Update mkdocs-gen-files requirement from ~=0.5.0 to \u003e=0.5,\u003c0.7","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-14T18:41:38.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T13:22:10.000Z","updated_at":"2026-04-14T18:41:48.000Z","time_to_close":105568,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"mkdocs-gen-files","old_version":"~=0.5.0","new_version":"\u003e=0.5,\u003c0.7","repository_url":"https://github.com/oprypin/mkdocs-gen-files"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/vllm-project/speculators/pull/403","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vllm-project%2Fspeculators/issues/403","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/403/packages"}},{"old_version":"0.6.0","new_version":"0.6.1","update_type":"patch","path":null,"pr_created_at":"2026-04-01T12:59:58.000Z","version_change":"0.6.0 → 0.6.1","issue":{"uuid":"4186743753","node_id":"PR_kwDOBnbX-M7PQKqs","number":289,"state":"open","title":"build(deps): bump mkdocs-gen-files from 0.6.0 to 0.6.1","user":"dependabot[bot]","labels":["dependencies","python:uv","size/XS","type/dependencies","status/needs-review"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-01T12:59:58.000Z","updated_at":"2026-04-03T17:50:22.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"mkdocs-gen-files","old_version":"0.6.0","new_version":"0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"}],"path":null,"ecosystem":"pip"},"body":"Bumps [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) from 0.6.0 to 0.6.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/jacksonpradolima/gsp-py/pull/289","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacksonpradolima%2Fgsp-py/issues/289","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/289/packages"}},{"old_version":"0.6.0","new_version":"0.6.1","update_type":"patch","path":null,"pr_created_at":"2026-03-30T13:27:21.000Z","version_change":"0.6.0 → 0.6.1","issue":{"uuid":"4170747933","node_id":"PR_kwDOQ3AX587Onzf5","number":323,"state":"open","title":"chore(deps)(deps-dev): bump the dev-dependencies group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["automated","dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-30T13:27:21.000Z","updated_at":"2026-04-06T12:51:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps-dev): bump","group_name":"dev-dependencies","update_count":11,"packages":[{"name":"ty","old_version":"0.0.18","new_version":"0.0.24","repository_url":"https://github.com/astral-sh/ty"},{"name":"ruff","old_version":"0.15.4","new_version":"0.15.7","repository_url":"https://github.com/astral-sh/ruff"},{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"arize-phoenix-client","old_version":"1.29.0","new_version":"2.1.0","repository_url":"https://github.com/Arize-ai/phoenix"},{"name":"mkdocs-material","old_version":"9.7.2","new_version":"9.7.6","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocs-gen-files","old_version":"0.6.0","new_version":"0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-literate-nav","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/oprypin/mkdocs-literate-nav"},{"name":"mkdocs-section-index","old_version":"0.3.10","new_version":"0.3.11","repository_url":"https://github.com/oprypin/mkdocs-section-index"},{"name":"cairosvg","old_version":"2.8.2","new_version":"2.9.0","repository_url":"https://github.com/Kozea/CairoSVG"},{"name":"gepa","old_version":"0.1.0","new_version":"0.1.1","repository_url":"https://github.com/gepa-ai/gepa"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [ty](https://github.com/astral-sh/ty) | `0.0.18` | `0.0.24` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.4` | `0.15.7` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [arize-phoenix-client](https://github.com/Arize-ai/phoenix) | `1.29.0` | `2.1.0` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.7.2` | `9.7.6` |\n| [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) | `0.6.0` | `0.6.1` |\n| [mkdocs-literate-nav](https://github.com/oprypin/mkdocs-literate-nav) | `0.6.2` | `0.6.3` |\n| [mkdocs-section-index](https://github.com/oprypin/mkdocs-section-index) | `0.3.10` | `0.3.11` |\n| [cairosvg](https://github.com/Kozea/CairoSVG) | `2.8.2` | `2.9.0` |\n| [gepa](https://github.com/gepa-ai/gepa) | `0.1.0` | `0.1.1` |\n\n\nUpdates `ty` from 0.0.18 to 0.0.24\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/releases\"\u003ety's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.24\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003eTypedDict\u003c/code\u003e subscripts for unknown keys return \u003ccode\u003eUnknown\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23926\"\u003e#23926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix overflow with recursive \u003ccode\u003eTypeIs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23784\"\u003e#23784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix variance of frozen dataclass-transform models (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23931\"\u003e#23931\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove \u003ca href=\"https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_semanticTokens\"\u003esemantic token\u003c/a\u003e classification for attribute access on union types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23841\"\u003e#23841\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove performance and correctness by avoiding inferring intersection types for call arguments as a result of bidirectional inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23933\"\u003e#23933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow keyword arguments when unpacking dictionary instances (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23436\"\u003e#23436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDiscover \u003ccode\u003e/usr/local/lib\u003c/code\u003e dist-packages on Debian/Ubuntu (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23797\"\u003e#23797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23963\"\u003e#23963\u003c/a\u003e). \u003ca href=\"https://github.com/python/typeshed/compare/fa659b1def704dea3dc8e25c7857b23eac69df4d...f8f0794d0fe249c06dc9f31a004d85be6cca6ced\"\u003eTypeshed diff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ty 0.0.24\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ty 0.0.24\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-aarch64-apple-darwin.tar.gz\"\u003ety-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-x86_64-apple-darwin.tar.gz\"\u003ety-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-aarch64-pc-windows-msvc.zip\"\u003ety-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-i686-pc-windows-msvc.zip\"\u003ety-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-x86_64-pc-windows-msvc.zip\"\u003ety-x86_64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-x86_64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-aarch64-unknown-linux-gnu.tar.gz\"\u003ety-aarch64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-aarch64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-i686-unknown-linux-gnu.tar.gz\"\u003ety-i686-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-i686-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-powerpc64-unknown-linux-gnu.tar.gz\"\u003ety-powerpc64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ePPC64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-powerpc64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-powerpc64le-unknown-linux-gnu.tar.gz\"\u003ety-powerpc64le-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ePPC64LE Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-powerpc64le-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-s390x-unknown-linux-gnu.tar.gz\"\u003ety-s390x-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eS390x Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ty/releases/download/0.0.24/ty-s390x-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- 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/ty/blob/main/CHANGELOG.md\"\u003ety's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.24\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003eTypedDict\u003c/code\u003e subscripts for unknown keys return \u003ccode\u003eUnknown\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23926\"\u003e#23926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix overflow with recursive \u003ccode\u003eTypeIs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23784\"\u003e#23784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix variance of frozen dataclass-transform models (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23931\"\u003e#23931\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove \u003ca href=\"https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_semanticTokens\"\u003esemantic token\u003c/a\u003e classification for attribute access on union types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23841\"\u003e#23841\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove performance and correctness by avoiding inferring intersection types for call arguments as a result of bidirectional inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23933\"\u003e#23933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow keyword arguments when unpacking dictionary instances (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23436\"\u003e#23436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDiscover \u003ccode\u003e/usr/local/lib\u003c/code\u003e dist-packages on Debian/Ubuntu (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23797\"\u003e#23797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23963\"\u003e#23963\u003c/a\u003e). \u003ca href=\"https://github.com/python/typeshed/compare/fa659b1def704dea3dc8e25c7857b23eac69df4d...f8f0794d0fe249c06dc9f31a004d85be6cca6ced\"\u003eTypeshed diff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce fast path for protocol non-assignability (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23952\"\u003e#23952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved generic-solver performance in cases involving overload sets (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23881\"\u003e#23881\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/Geo5\"\u003e\u003ccode\u003e@​Geo5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibraheemdev\"\u003e\u003ccode\u003e@​ibraheemdev\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/dcreager\"\u003e\u003ccode\u003e@​dcreager\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ollema\"\u003e\u003ccode\u003e@​ollema\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sharkdp\"\u003e\u003ccode\u003e@​sharkdp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-13.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix false-positive diagnostics for PEP-604 union annotations on attribute targets on Python 3.9 when \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e is active (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23915\"\u003e#23915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edataclass_transform\u003c/code\u003e: Respect \u003ccode\u003ekw_only\u003c/code\u003e overwrites in dataclasses (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23930\"\u003e#23930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix too-many-cycle panics when inferring loop variables with \u003ccode\u003eLiteral\u003c/code\u003e types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23875\"\u003e#23875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_foldingRange\"\u003efolding range\u003c/a\u003e classification of lines starting with \u003ccode\u003e#\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23831\"\u003e#23831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ca href=\"https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_foldingRange\"\u003efolding ranges\u003c/a\u003e for notebooks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23830\"\u003e#23830\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/ty/commit/876233049afc2530181f5b8af390c6d57c65bb80\"\u003e\u003ccode\u003e8762330\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.24 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3084\"\u003e#3084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/a6f24e14c0d41b17b44ea514b230a25bad411b65\"\u003e\u003ccode\u003ea6f24e1\u003c/code\u003e\u003c/a\u003e Update prek dependencies (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3045\"\u003e#3045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/95150e7634e4b863223cea12e96f48baa23625d3\"\u003e\u003ccode\u003e95150e7\u003c/code\u003e\u003c/a\u003e Typing FAQ: New entry explaining invariance (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3073\"\u003e#3073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/bc9e8a839385b3ee5a45d3df6e5f79885dcad17d\"\u003e\u003ccode\u003ebc9e8a8\u003c/code\u003e\u003c/a\u003e Remove the repository code of conduct in favor of the organization one (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/3d12b2e9f81cd98ccc27f0285f8056da9bb999d5\"\u003e\u003ccode\u003e3d12b2e\u003c/code\u003e\u003c/a\u003e Update astral-sh/setup-uv action to v7.6.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/64fe9c2fd1610cc6b25b1dfda0a8bb7694fc9467\"\u003e\u003ccode\u003e64fe9c2\u003c/code\u003e\u003c/a\u003e Update actions/attest-build-provenance action to v4 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3046\"\u003e#3046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/86d05eb2a7da77605d42ad86a5adbde131431047\"\u003e\u003ccode\u003e86d05eb\u003c/code\u003e\u003c/a\u003e Update docker/setup-buildx-action action to v4 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/eb3f320a525075daa431a0ed19d5cbff12dc5c2b\"\u003e\u003ccode\u003eeb3f320\u003c/code\u003e\u003c/a\u003e Update docker/metadata-action action to v6 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3049\"\u003e#3049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/7da93b86f69724734cfa4a90d3df3ca3b44bc4e4\"\u003e\u003ccode\u003e7da93b8\u003c/code\u003e\u003c/a\u003e Update docker/login-action action to v4 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3048\"\u003e#3048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/fa4db72937dacb89a6271327a7433b01322136f2\"\u003e\u003ccode\u003efa4db72\u003c/code\u003e\u003c/a\u003e Update docker/build-push-action action to v7 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ty/compare/0.0.18...0.0.24\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.4 to 0.15.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.7\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisplay output severity in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23845\"\u003e#23845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't show \u003ccode\u003enoqa\u003c/code\u003e hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't return code actions for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23905\"\u003e#23905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd company AI policy to contributing guide (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24021\"\u003e#24021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument editor features for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23924\"\u003e#23924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse PEP 639 license information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19661\"\u003e#19661\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/tmimmanuel\"\u003e\u003ccode\u003e@​tmimmanuel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\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/statxc\"\u003e\u003ccode\u003e@​statxc\u003c/code\u003e\u003c/a\u003e\u003c/li\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/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.7\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.7/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.15.7/ruff-installer.ps1 | iex\u0026quot;\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.7\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisplay output severity in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23845\"\u003e#23845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't show \u003ccode\u003enoqa\u003c/code\u003e hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't return code actions for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23905\"\u003e#23905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd company AI policy to contributing guide (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24021\"\u003e#24021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument editor features for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23924\"\u003e#23924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse PEP 639 license information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19661\"\u003e#19661\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/tmimmanuel\"\u003e\u003ccode\u003e@​tmimmanuel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\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/statxc\"\u003e\u003ccode\u003e@​statxc\u003c/code\u003e\u003c/a\u003e\u003c/li\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/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-12.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003elazy\u003c/code\u003e import parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23755\"\u003e#23755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for star-unpacking of comprehensions (PEP 798) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23788\"\u003e#23788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject semantic syntax errors for lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23757\"\u003e#23757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop a few rules from the preview default set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23879\"\u003e#23879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag \u003ccode\u003eVariable.get()\u003c/code\u003e calls outside of task execution context (\u003ccode\u003eAIR003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23584\"\u003e#23584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag runtime-varying values in DAG/task constructor arguments (\u003ccode\u003eAIR304\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23631\"\u003e#23631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003edelattr-with-constant\u003c/code\u003e (\u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23737\"\u003e#23737\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/0ef39de46c006994fb1e90f7bd4ba09c0b2c1f79\"\u003e\u003ccode\u003e0ef39de\u003c/code\u003e\u003c/a\u003e Bump 0.15.7 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24049\"\u003e#24049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/beb543b5c666be9fd3f13c88df818f202b63e9d0\"\u003e\u003ccode\u003ebeb543b\u003c/code\u003e\u003c/a\u003e [ty] ecosystem-analyzer: Fail on newly panicking projects (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24043\"\u003e#24043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/378fe730929ccd67a7f2426b3012093da814b31d\"\u003e\u003ccode\u003e378fe73\u003c/code\u003e\u003c/a\u003e Don't show noqa hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b5665bd18eecab4d3b5ab1256b36904cd99a4c57\"\u003e\u003ccode\u003eb5665bd\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6e20f2219020e61eeae29458013d2d3684f75a79\"\u003e\u003ccode\u003e6e20f22\u003c/code\u003e\u003c/a\u003e test: migrate \u003ccode\u003eshow_settings\u003c/code\u003e and \u003ccode\u003eversion\u003c/code\u003e tests to use \u003ccode\u003eCliTest\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23702\"\u003e#23702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f99b284c1fe1399a82da7f6669467488017d44a7\"\u003e\u003ccode\u003ef99b284\u003c/code\u003e\u003c/a\u003e Drain file watcher events during test setup (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24030\"\u003e#24030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/744c996c35016a8c0e05aa2823f4f822ac7b842c\"\u003e\u003ccode\u003e744c996\u003c/code\u003e\u003c/a\u003e [ty] Filter out unsatisfiable inference attempts during generic call narrowin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/16160958bdafb6106b6fffc72ffe2e4db0c0ac33\"\u003e\u003ccode\u003e1616095\u003c/code\u003e\u003c/a\u003e [ty] Avoid inferring intersection types for call arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23933\"\u003e#23933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7f275f431bf8c60d59601b74d441e9f4bef89f35\"\u003e\u003ccode\u003e7f275f4\u003c/code\u003e\u003c/a\u003e [ty] Pin mypy_primer in \u003ccode\u003esetup_primer_project.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24020\"\u003e#24020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7255e362e4b171a641222279cd28d2ca88a74fdc\"\u003e\u003ccode\u003e7255e36\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.4...0.15.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.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.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `arize-phoenix-client` from 1.29.0 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Arize-ai/phoenix/releases\"\u003earize-phoenix-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003earize-phoenix-client: v2.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/compare/arize-phoenix-client-v2.0.1...arize-phoenix-client-v2.1.0\"\u003e2.1.0\u003c/a\u003e (2026-03-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add span filter params to getSpans (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/12203\"\u003e#12203\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/91949d7aa63acff7110ec79518d9ad9ce711e277\"\u003e91949d7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003earize-phoenix-client: v2.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/compare/arize-phoenix-client-v2.0.0...arize-phoenix-client-v2.0.1\"\u003e2.0.1\u003c/a\u003e (2026-03-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add server version gating with capability requirements (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/12122\"\u003e#12122\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/9769f906ae0caef8e19f88e25e0ea545ee399d72\"\u003e9769f90\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003earize-phoenix-client: v2.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/compare/arize-phoenix-client-v1.31.0...arize-phoenix-client-v2.0.0\"\u003e2.0.0\u003c/a\u003e (2026-03-11)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e \u003ccode\u003eclient.annotations\u003c/code\u003e has been removed. Use \u003ccode\u003eclient.spans\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd Cerebras, Fireworks, Groq, and Moonshot as first-class providers (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11938\"\u003e#11938\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/df94203fa621bae9928d96249382380aa4be5443\"\u003edf94203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd Perplexity and Together AI as built-in providers in the playground (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11952\"\u003e#11952\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/aeefe1970405c7fcb48254dce92dcfc1824fcaa3\"\u003eaeefe19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd trace_ids parameter to client getSpans methods (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11945\"\u003e#11945\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/6d896e32ce1d4ed2038342ae67d678de2163e8f0\"\u003e6d896e3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add session conversation API to Python and TypeScript clients (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11974\"\u003e#11974\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/83b7f68782b4994a741244c478d5d561e4817bcb\"\u003e83b7f68\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e propagate parent_id filter to JS and Python clients (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11975\"\u003e#11975\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/d951320f704545a516ccd63d2acbc88a35685491\"\u003ed951320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e remove deprecated \u003ccode\u003eclient.annotations\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11983\"\u003e#11983\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/6203c31fc59579dfbe927d47ca0d03d162d7fb77\"\u003e6203c31\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eserver:\u003c/strong\u003e add DELETE session API  (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11976\"\u003e#11976\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/d4a865ae6bc1511b2b433b408de2f75bf71abc7b\"\u003ed4a865a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003earize-phoenix-client: v1.31.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/compare/arize-phoenix-client-v1.30.0...arize-phoenix-client-v1.31.0\"\u003e1.31.0\u003c/a\u003e (2026-03-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add session retrieval methods to Python client SDK (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11879\"\u003e#11879\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/3669813c7486b128d8858de6ef1cffa3e8d5c020\"\u003e3669813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add timeout and list_sessions alias to sessions API (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11897\"\u003e#11897\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/a4befc0f6bfe3a0641eca58eb2f35226ec54f4d6\"\u003ea4befc0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003earize-phoenix-client: v1.30.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/compare/arize-phoenix-client-v1.29.1...arize-phoenix-client-v1.30.0\"\u003e1.30.0\u003c/a\u003e (2026-03-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd GET endpoints for sessions REST API (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11724\"\u003e#11724\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/2a1f14846cec30bb9b892114f3510e740154bcc0\"\u003e2a1f148\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/Arize-ai/phoenix/blob/main/CHANGELOG.md\"\u003earize-phoenix-client's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/compare/arize-phoenix-v12.0.0...arize-phoenix-v12.1.0\"\u003e12.1.0\u003c/a\u003e (2025-09-30)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ecomponents:\u003c/strong\u003e switch (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9678\"\u003e#9678\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/ac061b5b73f8a608f50415be73c287e8b427d6f3\"\u003eac061b5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edataset label graphql(create, delete, read) (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9702\"\u003e#9702\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/f52744dd1e6fbe3eb3742457241246f849dfe9b9\"\u003ef52744d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emigrate from bitnami chart to groundhog2k (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9583\"\u003e#9583\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/f3be6317c960a66916de568dea98dcf914521221\"\u003ef3be631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport Claude Sonnet 4.5 (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9700\"\u003e#9700\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/2056f906938b5894b22cecaaaeaf79dec7712d02\"\u003e2056f90\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emissing root path for logout (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9707\"\u003e#9707\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/e14f4f6dd33472a048a19df26881d8184822388f\"\u003ee14f4f6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eplayground:\u003c/strong\u003e ensure playground dataset examples load when first switching to dataset mode (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9710\"\u003e#9710\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/452b06088af30ba6e09458ffa265e3e1bb082eeb\"\u003e452b060\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/compare/arize-phoenix-v11.38.0...arize-phoenix-v12.0.0\"\u003e12.0.0\u003c/a\u003e (2025-09-29)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eversion 12 (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9695\"\u003e#9695\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd annotation columns to sessions table (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9551\"\u003e#9551\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/212513dce2cdfcff5411ddd9dc350da0b131e21f\"\u003e212513d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd db table and graphql mutations for session annotations (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/8993\"\u003e#8993\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/092c067616477888e571635bcb575c6f97baf6e2\"\u003e092c067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd junction table for taking snapshots of examples when inserting an experiment (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9609\"\u003e#9609\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/f5714416052560e96182d01e23286032de575cb1\"\u003ef571441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd user_id on datasets and dataset_versions table (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9650\"\u003e#9650\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/0230f8f38a7a1cb5ba91b7035d411d885fffa97b\"\u003e0230f8f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAssign examples to dataset splits (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9606\"\u003e#9606\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/ec3f6fd5044b3e3fae1f04b5e56f5cc9d2692560\"\u003eec3f6fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclient methods for adding trace and session annotations (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9369\"\u003e#9369\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/e9b29ef0b50eb30c64d7e3c557d6264d5652d3fc\"\u003ee9b29ef\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edataset labels migration (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9409\"\u003e#9409\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/77011436e85f7ad35e2e4d032d248d1a4ad72be4\"\u003e7701143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edataset split and examples migration (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9360\"\u003e#9360\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/045f8a13b0fdc3af030d176939624e35add3f78f\"\u003e045f8a1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDataset Splits Add Dialog UI (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9601\"\u003e#9601\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/914cf640409936d378b6b9b959573b5858017ac5\"\u003e914cf64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edataset splits backend (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9490\"\u003e#9490\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/dc45cd2f44f506592cbd98d89b38e044d5447026\"\u003edc45cd2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edb:\u003c/strong\u003e add row for viewer role (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9648\"\u003e#9648\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/efbbf521c9b503bfa188eecef0228a1eb56c2d60\"\u003eefbbf52\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edisplay splits on examples table (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9602\"\u003e#9602\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/694d1e088d59c2aada71a822e2ae468aa3373047\"\u003e694d1e0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExperiment migration (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9279\"\u003e#9279\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/7151cd5c0e4234461f6a6c8bb5069a16565c47e2\"\u003e7151cd5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eexperiment-tags on experiment and datasets (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9406\"\u003e#9406\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/5afe0dc9c3c7cf0bd86a18e0513553ec22654db8\"\u003e5afe0dc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexperiments:\u003c/strong\u003e show repetitions in the table (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9669\"\u003e#9669\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/dfb05cbf8beff4820bd8bd173ba5a2429db7137d\"\u003edfb05cb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epin the minimum version of the client (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9666\"\u003e#9666\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/54ffb45923c3e24491f3f08ed935ca3e61b6f254\"\u003e54ffb45\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePlayground migration experiments record user_id (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9292\"\u003e#9292\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/3b0ca07da1e963c766b7612099a353fbc505c05a\"\u003e3b0ca07\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate to google genai sdk (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9591\"\u003e#9591\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/b50e82a0ff20cc83a380125b38e7d783e84effcc\"\u003eb50e82a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse composite primary key for crosswalk tables (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9636\"\u003e#9636\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/cc0eac1dd8df2a6323e2022dbd74ab674f992aea\"\u003ecc0eac1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eversion 12 (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9695\"\u003e#9695\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/8529fe31f7ef431c7074a838ce08285800058805\"\u003e8529fe3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd big int indexes and user id indexes (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/9693\"\u003e#9693\u003c/a\u003e) (\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/7c3393692939a5981881fd6036efc032cf53f642\"\u003e7c33936\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/Arize-ai/phoenix/commit/ffcfaaef0a0d42b8142a6ada7b74a1151780c3e8\"\u003e\u003ccode\u003effcfaae\u003c/code\u003e\u003c/a\u003e chore(main): release arize-phoenix-client 2.1.0 (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/12205\"\u003e#12205\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/7507b49283ca1838a8d6cd4132749ad28cfef89c\"\u003e\u003ccode\u003e7507b49\u003c/code\u003e\u003c/a\u003e chore(js): update versions (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/12204\"\u003e#12204\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/91949d7aa63acff7110ec79518d9ad9ce711e277\"\u003e\u003ccode\u003e91949d7\u003c/code\u003e\u003c/a\u003e feat(client): add span filter params to getSpans (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/12203\"\u003e#12203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/c32665a82df905ac564eb7a58e271311ae3cc511\"\u003e\u003ccode\u003ec32665a\u003c/code\u003e\u003c/a\u003e refactor: remove light darker tokens (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/12182\"\u003e#12182\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/42a7a1b2920580f4dbd3182df88575b277fe2b02\"\u003e\u003ccode\u003e42a7a1b\u003c/code\u003e\u003c/a\u003e feat(onboarding): add Python integration snippets (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/12197\"\u003e#12197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/6d4e8d7e863291cc60ceca7704d5588ddbfdead1\"\u003e\u003ccode\u003e6d4e8d7\u003c/code\u003e\u003c/a\u003e feat: Add TypeScript onboarding snippets for LangChain, OpenAI, Anthropic, an...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/565041c17d5a2027fe796d2f84c44e39af0948a3\"\u003e\u003ccode\u003e565041c\u003c/code\u003e\u003c/a\u003e docs: refine llms.txt: expand coverage, drop integrations, optimize concisene...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/35891a26f7ad8f747c3f03ae3999e954b252ce9f\"\u003e\u003ccode\u003e35891a2\u003c/code\u003e\u003c/a\u003e chore(js): update versions (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/12190\"\u003e#12190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/c8e618770c46c9ec350ade8669da28a584f951a8\"\u003e\u003ccode\u003ec8e6187\u003c/code\u003e\u003c/a\u003e chore(ui): enable jsx-a11y plugin and fix storybook violations (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/11684\"\u003e#11684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Arize-ai/phoenix/commit/d320b93eb23410505a02cebea68925c1c712612a\"\u003e\u003ccode\u003ed320b93\u003c/code\u003e\u003c/a\u003e fix: migrate llms.txt to standard llmstxt.org format (\u003ca href=\"https://redirect.github.com/Arize-ai/phoenix/issues/12189\"\u003e#12189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Arize-ai/phoenix/compare/arize-phoenix-client-v1.29.0...arize-phoenix-client-v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.7.2 to 9.7.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.6\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.5\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.4\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed environment (recommended by \u003ca href=\"https://github.com/caveeroo\"\u003e\u003ccode\u003e@​caveeroo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\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/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.6 (2026-03-19)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.5 (2026-03-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.4 (2026-03-03)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed environment\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.3 (2026-02-24)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8567\"\u003e#8567\u003c/a\u003e: Print MkDocs 2.0 incompatibility warning to stderr\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.2 (2026-02-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to 'mkdocs build' about impending MkDocs 2.0 incompatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\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/squidfunk/mkdocs-material/commit/6c52ed6289b171a153875491f059a94819ec3e10\"\u003e\u003ccode\u003e6c52ed6\u003c/code\u003e\u003c/a\u003e Prepare 9.7.6 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/51d9b76636431814df924bcda27485b16023978b\"\u003e\u003ccode\u003e51d9b76\u003c/code\u003e\u003c/a\u003e Automatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/6f9a48b4048650341a654d9757da57fc1e3e323d\"\u003e\u003ccode\u003e6f9a48b\u003c/code\u003e\u003c/a\u003e Updated links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/00b9933e5821fd852700268767d4fd53ae1ce1cb\"\u003e\u003ccode\u003e00b9933\u003c/code\u003e\u003c/a\u003e Prepare 9.7.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/37683d12c9cd62309aa917237741ee0886709b7c\"\u003e\u003ccode\u003e37683d1\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/199e31598055d5d6ea538618804c7558f5d81047\"\u003e\u003ccode\u003e199e315\u003c/code\u003e\u003c/a\u003e Updated warning message to clarify relation to MkDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/10258334eb13545e6d708cf121c3867bfbdb6017\"\u003e\u003ccode\u003e1025833\u003c/code\u003e\u003c/a\u003e Limited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/1532f523f6c650c9d6fd16229ee8bec0759b4151\"\u003e\u003ccode\u003e1532f52\u003c/code\u003e\u003c/a\u003e Added update log to blog post\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/d0c8b2862a966f5f268d4a4c35bb4fcfccebb9b1\"\u003e\u003ccode\u003ed0c8b28\u003c/code\u003e\u003c/a\u003e Updated dependencies to fix vulnerabilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/71d48699a0e2bef231e796818c4dc20b230a5f45\"\u003e\u003ccode\u003e71d4869\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.7.2...9.7.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.6.0 to 0.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-literate-nav` from 0.6.2 to 0.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/releases\"\u003emkdocs-literate-nav's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/pull/39\"\u003eoprypin/mkdocs-literate-nav#39\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ehttps://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.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/oprypin/mkdocs-literate-nav/commit/b91268c263f61e38a7e27f77ccf38ec287e0c0b5\"\u003e\u003ccode\u003eb91268c\u003c/code\u003e\u003c/a\u003e v0.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/cee9ec49a1523036081378a39bda9fa014432526\"\u003e\u003ccode\u003ecee9ec4\u003c/code\u003e\u003c/a\u003e Exclude properdocs when testing minimal dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/ea523f5864f59fb7939f84cd4400df67280ad52c\"\u003e\u003ccode\u003eea523f5\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/258b15a15a3e25cedc816d0a5a971acfdb86541e\"\u003e\u003ccode\u003e258b15a\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-section-index` from 0.3.10 to 0.3.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/releases\"\u003emkdocs-section-index's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/pull/27\"\u003eoprypin/mkdocs-section-index#27\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ehttps://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\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/oprypin/mkdocs-section-index/commit/a8235f6f8eb5927b966a3aaea8afe5fa161ecece\"\u003e\u003ccode\u003ea8235f6\u003c/code\u003e\u003c/a\u003e v0.3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/ac66dfda53834d79ce8e0af6f340dddd7cde2bf9\"\u003e\u003ccode\u003eac66dfd\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/issues/27\"\u003e#27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/32866cd83993ee3eefbac0fcc13911692796d8f6\"\u003e\u003ccode\u003e32866cd\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cairosvg` from 2.8.2 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/Kozea/CairoSVG/releases\"\u003ecairosvg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eWARNING:\u003c/strong\u003e this is a security update.\u003c/p\u003e\n\u003cp\u003eUsing a lot of recursively nested use tags could lead to long rendering times with relatively small inputs.\nCairoSVG now stops rendering when more than 100k use tags are rendered.\u003c/p\u003e\n\u003cp\u003eUsing the --unsafe option allows to render larger documents.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support of Python 3.9, add support of Python 3.14\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/Kozea/CairoSVG/blob/main/NEWS.rst\"\u003ecairosvg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion 2.9.0 released on 2026-03-13\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eWARNING:\u003c/strong\u003e this is a security update.\u003c/p\u003e\n\u003cp\u003eUsing a lot of recursively nested use tags could lead to long rendering times with\nrelatively small inputs. CairoSVG now stops rendering when more than 100k use tags are\nrendered.\u003c/p\u003e\n\u003cp\u003eUsing the --unsafe option allows to render larger documents.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support of Python 3.9, add support of Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kozea/CairoSVG/commit/fe5cae58e929e6d4337442c96ab415d1a7230905\"\u003e\u003ccode\u003efe5cae5\u003c/code\u003e\u003c/a\u003e Version 2.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kozea/CairoSVG/commit/6dde8685ed3f19837767bce7a13a5491e3d0e0bf\"\u003e\u003ccode\u003e6dde868\u003c/code\u003e\u003c/a\u003e Abort when more than 100k referenced elements are rendered\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kozea/CairoSVG/commit/a6b3a98ca17911967e4682d2e7f6590073a76175\"\u003e\u003ccode\u003ea6b3a98\u003c/code\u003e\u003c/a\u003e Cut long line again\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kozea/CairoSVG/commit/ce8b51d8ad1427b9276b4fc6bb4583c72c641f9c\"\u003e\u003ccode\u003ece8b51d\u003c/code\u003e\u003c/a\u003e Cut long line\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kozea/CairoSVG/commit/b7818c927afc78cac54a763b65e7c71b7e30fedc\"\u003e\u003ccode\u003eb7818c9\u003c/code\u003e\u003c/a\u003e Clarify unsafe option scope without removing security warning\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kozea/CairoSVG/compare/2.8.2...2.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gepa` from 0.1.0 to 0.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gepa-ai/gepa/releases\"\u003egepa's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.1\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003eCandidate Tree Visualization\u003c/strong\u003e — GEPA now generates an interactive HTML lineage tree of all candidates explored during optimization. Nodes are color-coded by role (best, Pareto front, seed) with hover previews and click-to-pin tooltips for reading full prompt text. The tree is...\n\n_Description has been truncated_","html_url":"https://github.com/Alberto-Codes/gepa-adk/pull/323","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alberto-Codes%2Fgepa-adk/issues/323","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/323/packages"}},{"old_version":"0.6.0","new_version":"0.6.1","update_type":"patch","path":null,"pr_created_at":"2026-03-30T03:29:56.000Z","version_change":"0.6.0 → 0.6.1","issue":{"uuid":"4166885395","node_id":"PR_kwDOKCo6Yc7OeGB5","number":564,"state":"open","title":"python-deps(deps): bump the python-dependencies group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["python","dependencies"],"assignees":["dependabot[bot]"],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-30T03:29:56.000Z","updated_at":"2026-03-31T15:36:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"python-deps(deps): bump","group_name":"python-dependencies","update_count":17,"packages":[{"name":"griffe","old_version":"2.0.0","new_version":"2.0.2","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"mkdocs-gen-files","old_version":"0.6.0","new_version":"0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-include-markdown-plugin","old_version":"7.2.1","new_version":"7.2.2","repository_url":"https://github.com/mondeja/mkdocs-include-markdown-plugin"},{"name":"mkdocs-literate-nav","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/oprypin/mkdocs-literate-nav"},{"name":"mkdocs-section-index","old_version":"0.3.10","new_version":"0.3.11","repository_url":"https://github.com/oprypin/mkdocs-section-index"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.21","new_version":"10.21.2","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"tomli","old_version":"2.4.0","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"coverage","old_version":"7.13.4","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"ruff","old_version":"0.15.6","new_version":"0.15.8","repository_url":"https://github.com/astral-sh/ruff"},{"name":"chardet","old_version":"5.2.0","new_version":"7.4.0.post2","repository_url":"https://github.com/chardet/chardet"},{"name":"werkzeug","old_version":"3.1.6","new_version":"3.1.7","repository_url":"https://github.com/pallets/werkzeug"},{"name":"griffecli","old_version":"2.0.0","new_version":"2.0.2"},{"name":"griffelib","old_version":"2.0.0","new_version":"2.0.2"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.44.0","repository_url":"https://github.com/pydantic/pydantic-core"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 17 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [griffe](https://github.com/mkdocstrings/griffe) | `2.0.0` | `2.0.2` |\n| [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) | `0.6.0` | `0.6.1` |\n| [mkdocs-include-markdown-plugin](https://github.com/mondeja/mkdocs-include-markdown-plugin) | `7.2.1` | `7.2.2` |\n| [mkdocs-literate-nav](https://github.com/oprypin/mkdocs-literate-nav) | `0.6.2` | `0.6.3` |\n| [mkdocs-section-index](https://github.com/oprypin/mkdocs-section-index) | `0.3.10` | `0.3.11` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.21` | `10.21.2` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.4.0` | `2.4.1` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.4` | `7.13.5` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.6` | `0.15.8` |\n| [chardet](https://github.com/chardet/chardet) | `5.2.0` | `7.4.0.post2` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.6` | `3.1.7` |\n| griffecli | `2.0.0` | `2.0.2` |\n| griffelib | `2.0.0` | `2.0.2` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.41.5` | `2.44.0` |\n\n\nUpdates `griffe` from 2.0.0 to 2.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.2\"\u003e2.0.2\u003c/a\u003e - 2026-03-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.1...2.0.2\"\u003eCompare with 2.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBuild\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd py.typed marker to packages (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce46ba314810e46c5168cfab220254908640d6e3\"\u003ece46ba3\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2026-03-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting type parameters through aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/75c1236078bdb38ccaf95330d3c635f8db3806b7\"\u003e75c1236\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/449\"\u003eIssue-449\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/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.2\"\u003e2.0.2\u003c/a\u003e - 2026-03-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.1...2.0.2\"\u003eCompare with 2.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBuild\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd py.typed marker to packages (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce46ba314810e46c5168cfab220254908640d6e3\"\u003ece46ba3\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2026-03-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting type parameters through aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/75c1236078bdb38ccaf95330d3c635f8db3806b7\"\u003e75c1236\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/449\"\u003eIssue-449\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/mkdocstrings/griffe/commit/6f30ebb60f11c419c2b0c703faa09163a39552a3\"\u003e\u003ccode\u003e6f30ebb\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce46ba314810e46c5168cfab220254908640d6e3\"\u003e\u003ccode\u003ece46ba3\u003c/code\u003e\u003c/a\u003e build: Add py.typed marker to packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/006282cf920109782fec91f9b5c4437cfbd02bac\"\u003e\u003ccode\u003e006282c\u003c/code\u003e\u003c/a\u003e chore: Fix publish duty\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8df2c4061d01f8c7a3ded03d63505fef0052092a\"\u003e\u003ccode\u003e8df2c40\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1236192681a9492133efd01bcd77d018fa3d4630\"\u003e\u003ccode\u003e1236192\u003c/code\u003e\u003c/a\u003e chore: Update ty comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/75c1236078bdb38ccaf95330d3c635f8db3806b7\"\u003e\u003ccode\u003e75c1236\u003c/code\u003e\u003c/a\u003e fix: Allow setting type parameters through aliases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/862a891818d7182204e213ef216b6b5f3c6dc106\"\u003e\u003ccode\u003e862a891\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2666aaabe9b93f70c3dcde46ac284251a065a5c1\"\u003e\u003ccode\u003e2666aaa\u003c/code\u003e\u003c/a\u003e chore: Update sponsors section in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/e30c32143149ab124f3ade14523201b80a9cbfd9\"\u003e\u003ccode\u003ee30c321\u003c/code\u003e\u003c/a\u003e style: Format code for Python 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/051394aa21cd0884a7480a6892c07d62bf0ca451\"\u003e\u003ccode\u003e051394a\u003c/code\u003e\u003c/a\u003e chore: Add back title to type-check duty\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.0...2.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.6.0 to 0.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-include-markdown-plugin` from 7.2.1 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/releases\"\u003emkdocs-include-markdown-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.2.2\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix natural order by extension not correctly applied\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/98cf8e8dee370cf332ed00cd8426d2ffcfa07065\"\u003e\u003ccode\u003e98cf8e8\u003c/code\u003e\u003c/a\u003e Fix natural order by extension not correctly applied (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/292\"\u003e#292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/compare/v7.2.1...v7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-literate-nav` from 0.6.2 to 0.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/releases\"\u003emkdocs-literate-nav's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/pull/39\"\u003eoprypin/mkdocs-literate-nav#39\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ehttps://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.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/oprypin/mkdocs-literate-nav/commit/b91268c263f61e38a7e27f77ccf38ec287e0c0b5\"\u003e\u003ccode\u003eb91268c\u003c/code\u003e\u003c/a\u003e v0.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/cee9ec49a1523036081378a39bda9fa014432526\"\u003e\u003ccode\u003ecee9ec4\u003c/code\u003e\u003c/a\u003e Exclude properdocs when testing minimal dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/ea523f5864f59fb7939f84cd4400df67280ad52c\"\u003e\u003ccode\u003eea523f5\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/258b15a15a3e25cedc816d0a5a971acfdb86541e\"\u003e\u003ccode\u003e258b15a\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-section-index` from 0.3.10 to 0.3.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/releases\"\u003emkdocs-section-index's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/pull/27\"\u003eoprypin/mkdocs-section-index#27\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ehttps://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\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/oprypin/mkdocs-section-index/commit/a8235f6f8eb5927b966a3aaea8afe5fa161ecece\"\u003e\u003ccode\u003ea8235f6\u003c/code\u003e\u003c/a\u003e v0.3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/ac66dfda53834d79ce8e0af6f340dddd7cde2bf9\"\u003e\u003ccode\u003eac66dfd\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/issues/27\"\u003e#27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/32866cd83993ee3eefbac0fcc13911692796d8f6\"\u003e\u003ccode\u003e32866cd\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\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.2 to 2.20.0\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.20.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRell (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003earchetype: Fix catastrophic backtracking in GUID and ID patterns (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3064\"\u003e#3064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eASN.1: Recognize minus sign and fix range operator (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3014\"\u003e#3014\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eC++: Add C++26 keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e), add integer literal suffixes (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2966\"\u003e#2966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComponentPascal: Fix \u003ccode\u003eanalyse_text\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3028\"\u003e#3028\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3032\"\u003e#3032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCoq renamed to Rocq (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2883\"\u003e#2883\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2908\"\u003e#2908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCython: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2932\"\u003e#2932\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDebian control: Improve architecture parsing (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3052\"\u003e#3052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDevicetree: Add support for overlay/fragments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3021\"\u003e#3021\u003c/a\u003e), add bytestring support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3022\"\u003e#3022\u003c/a\u003e), fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFennel: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHaskell: Handle escape sequences in character literals (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3069\"\u003e#3069\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/1795\"\u003e#1795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJava: Add module keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLean4: Add operators \u003ccode\u003e]'\u003c/code\u003e, \u003ccode\u003e]?\u003c/code\u003e, \u003ccode\u003e]!\u003c/code\u003e  (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2946\"\u003e#2946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLESS: Support single-line comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLilyPond: Update to 2.25.29 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLLVM: Support C-style comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3023\"\u003e#3023\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2978\"\u003e#2978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLua(u): Fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMacaulay2: Update to 1.25.05 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2893\"\u003e#2893\u003c/a\u003e), 1.25.11 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2988\"\u003e#2988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMathematica: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2957\"\u003e#2957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emeson: Add additional operators (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMySQL: Update keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2970\"\u003e#2970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eorg-Mode: Support both schedule and deadline (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2899\"\u003e#2899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePHP: Add \u003ccode\u003e__PROPERTY__\u003c/code\u003e magic constant (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2924\"\u003e#2924\u003c/a\u003e), add reserved keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3002\"\u003e#3002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePostgreSQL: Add more keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2985\"\u003e#2985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eprotobuf: Fix namespace tokenization (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2929\"\u003e#2929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython: Add \u003ccode\u003et\u003c/code\u003e-string support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2973\"\u003e#2973\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3009\"\u003e#3009\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTablegen: Fix infinite loop (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2972\"\u003e#2972\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTera Term macro: Add commands introduced in v5.3 through v5.6 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTOML: Support TOML 1.1.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3026\"\u003e#3026\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTurtle: Allow empty comment lines (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2980\"\u003e#2980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eXML: Added \u003ccode\u003e.xbrl\u003c/code\u003e as file ending (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2890\"\u003e#2890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop Python 3.8, and add Python 3.14 as a supported version (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2987\"\u003e#2987\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3012\"\u003e#3012\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to \u003ccode\u003eautopygmentize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003eonedark\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2977\"\u003e#2977\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003ertt\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2895\"\u003e#2895\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCache entry points to improve performance (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2979\"\u003e#2979\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003exterm-256\u003c/code\u003e color table (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3043\"\u003e#3043\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ekwargs\u003c/code\u003e dictionary getting mutated on each call (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pygments/pygments/blob/master/CHANGES\"\u003epygments's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.20.0\u003c/h2\u003e\n\u003cp\u003e(released March 29th, 2026)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRell (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003earchetype: Fix catastrophic backtracking in GUID and ID patterns (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3064\"\u003e#3064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eASN.1: Recognize minus sign and fix range operator (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3014\"\u003e#3014\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eC++: Add C++26 keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e), add integer literal suffixes (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2966\"\u003e#2966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComponentPascal: Fix \u003ccode\u003eanalyse_text\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3028\"\u003e#3028\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3032\"\u003e#3032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCoq renamed to Rocq (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2883\"\u003e#2883\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2908\"\u003e#2908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCython: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2932\"\u003e#2932\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDebian control: Improve architecture parsing (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3052\"\u003e#3052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDevicetree: Add support for overlay/fragments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3021\"\u003e#3021\u003c/a\u003e), add bytestring support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3022\"\u003e#3022\u003c/a\u003e), fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFennel: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHaskell: Handle escape sequences in character literals (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3069\"\u003e#3069\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/1795\"\u003e#1795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJava: Add module keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLean4: Add operators \u003ccode\u003e]'\u003c/code\u003e, \u003ccode\u003e]?\u003c/code\u003e, \u003ccode\u003e]!\u003c/code\u003e  (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2946\"\u003e#2946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLESS: Support single-line comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLilyPond: Update to 2.25.29 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLLVM: Support C-style comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3023\"\u003e#3023\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2978\"\u003e#2978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLua(u): Fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMacaulay2: Update to 1.25.05 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2893\"\u003e#2893\u003c/a\u003e), 1.25.11 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2988\"\u003e#2988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMathematica: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2957\"\u003e#2957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emeson: Add additional operators (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMySQL: Update keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2970\"\u003e#2970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eorg-Mode: Support both schedule and deadline (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2899\"\u003e#2899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePHP: Add \u003ccode\u003e__PROPERTY__\u003c/code\u003e magic constant (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2924\"\u003e#2924\u003c/a\u003e), add reserved keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3002\"\u003e#3002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePostgreSQL: Add more keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2985\"\u003e#2985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eprotobuf: Fix namespace tokenization (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2929\"\u003e#2929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython: Add \u003ccode\u003et\u003c/code\u003e-string support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2973\"\u003e#2973\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3009\"\u003e#3009\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTablegen: Fix infinite loop (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2972\"\u003e#2972\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTera Term macro: Add commands introduced in v5.3 through v5.6 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTOML: Support TOML 1.1.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3026\"\u003e#3026\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTurtle: Allow empty comment lines (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2980\"\u003e#2980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eXML: Added \u003ccode\u003e.xbrl\u003c/code\u003e as file ending (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2890\"\u003e#2890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop Python 3.8, and add Python 3.14 as a supported version (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2987\"\u003e#2987\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3012\"\u003e#3012\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to \u003ccode\u003eautopygmentize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003eonedark\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2977\"\u003e#2977\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003ertt\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2895\"\u003e#2895\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCache entry points to improve performance (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2979\"\u003e#2979\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003exterm-256\u003c/code\u003e color table (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3043\"\u003e#3043\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ekwargs\u003c/code\u003e dictionary getting mutated on each call (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/708197d82827ba2d5ca78bcbb653c7102ce86dcd\"\u003e\u003ccode\u003e708197d\u003c/code\u003e\u003c/a\u003e Fix underline length.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/1d4538ae8621d766ecc91ff59caf76ab75983abc\"\u003e\u003ccode\u003e1d4538a\u003c/code\u003e\u003c/a\u003e Prepare 2.20 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/2ceaee4e634eebae2d10a47fd05406871f6bac8f\"\u003e\u003ccode\u003e2ceaee4\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/e3a3c54b58c7f80bc4db887e471d4f91c77844ed\"\u003e\u003ccode\u003ee3a3c54\u003c/code\u003e\u003c/a\u003e Fix Haskell lexer: handle escape sequences in character literals (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3069\"\u003e#3069\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/d7c3453e342dac319f58e4091f4ef183cc49d802\"\u003e\u003ccode\u003ed7c3453\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3071\"\u003e#3071\u003c/a\u003e from pygments/harden-html-formatter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/0f97e7c37d44abfa4ddfddf44a3290fdad586034\"\u003e\u003ccode\u003e0f97e7c\u003c/code\u003e\u003c/a\u003e Harden the HTML formatter against CSS.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/9f981b2ba42b88ca5bdcebf12cd01efd7cd80aec\"\u003e\u003ccode\u003e9f981b2\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/1d889151024e9a53f3702a60558b29b070306e9e\"\u003e\u003ccode\u003e1d88915\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/c3d93adb9827fc054c3c12b47bde31c781a36a93\"\u003e\u003ccode\u003ec3d93ad\u003c/code\u003e\u003c/a\u003e Fix ASN.1 lexer: recognize minus sign and fix range operator (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/4f06bcf8a5ba3f2b5bda24a26ccf041a1a65d91e\"\u003e\u003ccode\u003e4f06bcf\u003c/code\u003e\u003c/a\u003e fix bad behaving backtracking regex in CommonLispLexer\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pygments/pygments/compare/2.19.2...2.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymdown-extensions` from 10.21 to 10.21.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/releases\"\u003epymdown-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e10.21. 2\u003c/h2\u003e\n\u003ch2\u003e10.21.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Highlight: Latest Pygments versions cannot handle a \u0026quot;filename\u0026quot; for code block titles of \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.20.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Quotes: Ensure the first class for callouts (the alert type) is always rendered lowercase.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/a4fdd73554706877e339692183b9424e8f5fec24\"\u003e\u003ccode\u003ea4fdd73\u003c/code\u003e\u003c/a\u003e Skip tag 10.21.1 has we accidentally already used it\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/8afb4cde8fa5159e4318ab72e2daa55fd1107d4f\"\u003e\u003ccode\u003e8afb4cd\u003c/code\u003e\u003c/a\u003e Docs: Update JS deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/7bf5b2965a6b3dc6ee502ad3d117f6182e838e56\"\u003e\u003ccode\u003e7bf5b29\u003c/code\u003e\u003c/a\u003e Pygments needs a non-None value for code block title (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2863\"\u003e#2863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/20b11ebc86b54fbbed3d43e6f1d845ee474b2378\"\u003e\u003ccode\u003e20b11eb\u003c/code\u003e\u003c/a\u003e Fix some spelling and formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/c9edba3301e321e1e0f830a74a01ccbf10a45786\"\u003e\u003ccode\u003ec9edba3\u003c/code\u003e\u003c/a\u003e Docs: strengthen Snippets warning and add security considerations\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/compare/10.21...10.21.2\"\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.5 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tomli` from 2.4.0 to 2.4.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hukkin/tomli/blob/master/CHANGELOG.md\"\u003etomli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed\n\u003cul\u003e\n\u003cli\u003eLimit number of parts of a TOML key to address quadratic time complexity\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/c5f44690c68c5ed29534faa8f9df18882113728c\"\u003e\u003ccode\u003ec5f4469\u003c/code\u003e\u003c/a\u003e Bump version: 2.4.0 → 2.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/2bcd2627d5fcc262f734eaa730b62c0915d1e0d3\"\u003e\u003ccode\u003e2bcd262\u003c/code\u003e\u003c/a\u003e Add change log for 2.4.1 and 2.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/e1fdb94bc998377f1c2545c7cd4f70ff2a3fb4e4\"\u003e\u003ccode\u003ee1fdb94\u003c/code\u003e\u003c/a\u003e Limit number of parts of a key (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/c20c49113890c226ffb27a67befe20d14fcf0c73\"\u003e\u003ccode\u003ec20c491\u003c/code\u003e\u003c/a\u003e pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/920e20b1cf495b63f6d4a6aa3cd5e4ff25f5f5a7\"\u003e\u003ccode\u003e920e20b\u003c/code\u003e\u003c/a\u003e Update performance benchmark and results\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/064e492919b2338def788753b8c981c9131334c0\"\u003e\u003ccode\u003e064e492\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/280\"\u003e#280\u003c/a\u003e from hukkin/version-2.4.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/hukkin/tomli/compare/2.4.0...2.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.4 to 7.13.5\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.5 — 2026-03-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eissue 2138\u003c/code\u003e_ describes a memory leak that happened when repeatedly\nusing the Coverage API with in-memory data. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the markdown-formatted coverage report didn't fully escape special\ncharacters in file paths (\u003ccode\u003eissue 2141\u003c/code\u003e\u003cem\u003e). This would be very unlikely to\ncause a problem, but now it's done properly, thanks to \u003ccode\u003eEllie Ayla \u0026lt;pull 2142_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the C extension wouldn't build on VS2019, but now it does (\u003ccode\u003eissue 2145\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2138: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2138\"\u003ecoveragepy/coveragepy#2138\u003c/a\u003e\n.. _issue 2141: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2141\"\u003ecoveragepy/coveragepy#2141\u003c/a\u003e\n.. _pull 2142: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2142\"\u003ecoveragepy/coveragepy#2142\u003c/a\u003e\n.. _issue 2145: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2145\"\u003ecoveragepy/coveragepy#2145\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-4:\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/c88da144eef8cf78424331e5cbbde3e002eef43f\"\u003e\u003ccode\u003ec88da14\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e2ac3e1ef644370101ff365acad3431d16076512\"\u003e\u003ccode\u003ee2ac3e1\u003c/code\u003e\u003c/a\u003e build: sample HTML shouldn't include the status.json file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/910f8f336541c2dcb4e9ec468144c7eb4a7779ac\"\u003e\u003ccode\u003e910f8f3\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3a4819c24d3d20cb2670b99141517812ffa3fab0\"\u003e\u003ccode\u003e3a4819c\u003c/code\u003e\u003c/a\u003e style: make workflows more uniform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2a53705f5fe588158b8a8d37ff3beee86388b9e4\"\u003e\u003ccode\u003e2a53705\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 4 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e7c878d201db819416b978150944d9a842d22b18\"\u003e\u003ccode\u003ee7c878d\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ab4db406a9c35acf977cf3ddb94a78d696b77bc5\"\u003e\u003ccode\u003eab4db40\u003c/code\u003e\u003c/a\u003e build: use --generate-hashes when pinning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a438753eef870441044cef588e29ce4b9a28adf1\"\u003e\u003ccode\u003ea438753\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/7b33457d2c6367dfd5a563239998b3980444e090\"\u003e\u003ccode\u003e7b33457\u003c/code\u003e\u003c/a\u003e refactor: some leftover pyupgrade 3.10 bits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2ff968db91a7cdafe6f6569ac7659a3a93a2da07\"\u003e\u003ccode\u003e2ff968d\u003c/code\u003e\u003c/a\u003e refactor: this type wasn't used anywhere\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.4...7.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.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.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.6 to 0.15.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.8\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-26.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003eunnecessary-if\u003c/code\u003e (\u003ccode\u003eRUF050\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24114\"\u003e#24114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003euseless-finally\u003c/code\u003e (\u003ccode\u003eRUF072\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24165\"\u003e#24165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003ef-string-percent-format\u003c/code\u003e (\u003ccode\u003eRUF073\u003c/code\u003e): warn when using \u003ccode\u003e%\u003c/code\u003e operator on an f-string (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24162\"\u003e#24162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Recognize \u003ccode\u003efrozendict\u003c/code\u003e as a builtin for Python 3.15+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24100\"\u003e#24100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Use fully-qualified \u003ccode\u003eanyio.lowlevel\u003c/code\u003e import in autofix (\u003ccode\u003eASYNC115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24166\"\u003e#24166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Check tuple arguments for partial paths in \u003ccode\u003eS607\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24080\"\u003e#24080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Skip \u003ccode\u003eundefined-name\u003c/code\u003e (\u003ccode\u003eF821\u003c/code\u003e) for conditionally deleted variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24088\"\u003e#24088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eE501\u003c/code\u003e/\u003ccode\u003eW505\u003c/code\u003e/formatter: Exclude nested pragma comments from line width calculation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24071\"\u003e#24071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e%foo?\u003c/code\u003e parsing in IPython assignment expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24152\"\u003e#24152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanalyze graph\u003c/code\u003e: resolve string imports that reference attributes, not just modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24058\"\u003e#24058\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\u003ety: ignore\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24192\"\u003e#24192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Treat \u003ccode\u003esys.executable\u003c/code\u003e as trusted input in \u003ccode\u003eS603\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24106\"\u003e#24106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Recognize \u003ccode\u003eSelf\u003c/code\u003e annotation and \u003ccode\u003eself\u003c/code\u003e assignment in \u003ccode\u003eSLF001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24144\"\u003e#24144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] \u003ccode\u003eF507\u003c/code\u003e: Fix false negative for non-tuple RHS in \u003ccode\u003e%\u003c/code\u003e-formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24142\"\u003e#24142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Parenthesize generator arguments in \u003ccode\u003eFURB142\u003c/code\u003e fixer (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24200\"\u003e#24200\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up diagnostic rendering (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24146\"\u003e#24146\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when Markdown files are skipped due to preview being disabled (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24150\"\u003e#24150\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify \u003ccode\u003eextend-ignore\u003c/code\u003e and \u003ccode\u003eextend-select\u003c/code\u003e settings documentation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24064\"\u003e#24064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMention AI policy in PR template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24198\"\u003e#24198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse trusted publishing for NPM packages (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24171\"\u003e#24171\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/bitloi\"\u003e\u003ccode\u003e@​bitloi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sim-hu\"\u003e\u003ccode\u003e@​Sim-hu\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.8\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-26.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003eunnecessary-if\u003c/code\u003e (\u003ccode\u003eRUF050\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24114\"\u003e#24114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003euseless-finally\u003c/code\u003e (\u003ccode\u003eRUF072\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24165\"\u003e#24165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003ef-string-percent-format\u003c/code\u003e (\u003ccode\u003eRUF073\u003c/code\u003e): warn when using \u003ccode\u003e%\u003c/code\u003e operator on an f-string (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24162\"\u003e#24162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Recognize \u003ccode\u003efrozendict\u003c/code\u003e as a builtin for Python 3.15+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24100\"\u003e#24100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Use fully-qualified \u003ccode\u003eanyio.lowlevel\u003c/code\u003e import in autofix (\u003ccode\u003eASYNC115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24166\"\u003e#24166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Check tuple arguments for partial paths in \u003ccode\u003eS607\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24080\"\u003e#24080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Skip \u003ccode\u003eundefined-name\u003c/code\u003e (\u003ccode\u003eF821\u003c/code\u003e) for conditionally deleted variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24088\"\u003e#24088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eE501\u003c/code\u003e/\u003ccode\u003eW505\u003c/code\u003e/formatter: Exclude nested pragma comments from line width calculation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24071\"\u003e#24071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e%foo?\u003c/code\u003e parsing in IPython assignment expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24152\"\u003e#24152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanalyze graph\u003c/code\u003e: resolve string imports that reference attributes, not just modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24058\"\u003e#24058\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\u003ety: ignore\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24192\"\u003e#24192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Treat \u003ccode\u003esys.executable\u003c/code\u003e as trusted input in \u003ccode\u003eS603\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24106\"\u003e#24106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Recognize \u003ccode\u003eSelf\u003c/code\u003e annotation and \u003ccode\u003eself\u003c/code\u003e assignment in \u003ccode\u003eSLF001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24144\"\u003e#24144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] \u003ccode\u003eF507\u003c/code\u003e: Fix false negative for non-tuple RHS in \u003ccode\u003e%\u003c/code\u003e-formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24142\"\u003e#24142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Parenthesize generator arguments in \u003ccode\u003eFURB142\u003c/code\u003e fixer (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24200\"\u003e#24200\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up diagnostic rendering (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24146\"\u003e#24146\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when Markdown files are skipped due to preview being disabled (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24150\"\u003e#24150\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify \u003ccode\u003eextend-ignore\u003c/code\u003e and \u003ccode\u003eextend-select\u003c/code\u003e settings documentation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24064\"\u003e#24064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMention AI policy in PR template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24198\"\u003e#24198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse trusted publishing for NPM packages (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24171\"\u003e#24171\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/bitloi\"\u003e\u003ccode\u003e@​bitloi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sim-hu\"\u003e\u003ccode\u003e@​Sim-hu\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\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/c2a8815842f9dc5d24ec19385eae0f1a7188b0d9\"\u003e\u003ccode\u003ec2a8815\u003c/code\u003e\u003c/a\u003e Release 0.15.8 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24217\"\u003e#24217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d444d52e2b9cc8bc9a078c2bd4ff6ff993290209\"\u003e\u003ccode\u003ed444d52\u003c/code\u003e\u003c/a\u003e [ty] Infer lambda expressions with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22633\"\u003e#22633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9622285ed0081fc688149f6efca87f127d9b18dd\"\u003e\u003ccode\u003e9622285\u003c/code\u003e\u003c/a\u003e [ty] Autocomplete arguments if in arguments node (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24167\"\u003e#24167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d81266252aaf0820346d55edbed79c4f25ba13d2\"\u003e\u003ccode\u003ed812662\u003c/code\u003e\u003c/a\u003e Use the \u003ccode\u003erelease\u003c/code\u003e environment in \u003ccode\u003epublish-docs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24214\"\u003e#24214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eda2355832f7a9c58aef6febd3e061dc9c87509a\"\u003e\u003ccode\u003eeda2355\u003c/code\u003e\u003c/a\u003e [ty] Show \u003ccode\u003eFinal\u003c/code\u003e source in final assignment diagnostic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24194\"\u003e#24194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/929eb5238c82bfadad4549ff526f02efc0163dd0\"\u003e\u003ccode\u003e929eb52\u003c/code\u003e\u003c/a\u003e [ty] Enforce Final attribute assignment rules for annotated and augmented wri...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/34998be22ec3a77d398bbd55234ef8740f768329\"\u003e\u003ccode\u003e34998be\u003c/code\u003e\u003c/a\u003e [ty] Fix typo in comment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24211\"\u003e#24211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/560aca0b2828ee2ff1b4bcc5c5ef1ef4ced229d2\"\u003e\u003ccode\u003e560aca0\u003c/code\u003e\u003c/a\u003e [ty] Minor simplifications to some benchmark code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24209\"\u003e#24209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/683bae512d03d3727a7bcdbc5a0170dafa049583\"\u003e\u003ccode\u003e683bae5\u003c/code\u003e\u003c/a\u003e [ty] Track non-terminal-call constraints in global scope (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23245\"\u003e#23245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4704c2a4ff3dde2fd29324346720e9516b4fe387\"\u003e\u003ccode\u003e4704c2a\u003c/code\u003e\u003c/a\u003e [ty] Remove unnecessary intermediate collection in `StaticClassLiteral::field...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.6...0.15.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `chardet` from 5.2.0 to 7.4.0.post2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/chardet/chardet/releases\"\u003echardet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003echardet 7.4.0 brings accuracy up to 99.3% (from 98.6% in 7.3.0) and significantly faster cold start thanks to a new dense model format.\u003c/p\u003e\n\u003ch2\u003eWhat's New\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ePerformance:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNew dense zlib-compressed model format (v2) drops cold start (import + first detect) from ~75ms to ~13ms with mypyc\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eAccuracy (98.6% → 99.3%):\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEliminated train/test data overlap via content fingerprinting\u003c/li\u003e\n\u003cli\u003eAdded MADLAD-400 and Wikipedia as supplemental training sources\u003c/li\u003e\n\u003cli\u003eImproved non-ASCII bigram scoring: high-byte bigrams are now preserved during training and weighted by per-bigram IDF\u003c/li\u003e\n\u003cli\u003eEncoding-aware substitution filtering (substitutions only apply for characters the target encoding can't represent)\u003c/li\u003e\n\u003cli\u003eIncreased training samples from 15K to 25K per language/encoding pair\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded dedicated structural analyzers for CP932, CP949, and Big5-HKSCS (these were previously sharing their base encoding's byte-range analyzer, missing extended ranges)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMetrics\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003e\u003c/th\u003e\n\u003cth align=\"center\"\u003echardet 7.4.0 (mypyc)\u003c/th\u003e\n\u003cth align=\"center\"\u003echardet 6.0.0\u003c/th\u003e\n\u003cth align=\"center\"\u003echarset-normalizer 3.4.6\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eAccuracy (2,517 files)\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cstrong\u003e99.3%\u003c/strong\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e88.2%\u003c/td\u003e\n\u003ctd align=\"center\"\u003e85.4%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSpeed\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cstrong\u003e551 files/s\u003c/strong\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e12 files/s\u003c/td\u003e\n\u003ctd align=\"center\"\u003e376 files/s\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eLanguage detection\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cstrong\u003e95.7%\u003c/strong\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e40.0%\u003c/td\u003e\n\u003ctd align=\"center\"\u003e59.2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eFull changelog: \u003ca href=\"https://chardet.readthedocs.io/en/latest/changelog.html\"\u003ehttps://chardet.readthedocs.io/en/latest/changelog.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.3.0\u003c/h2\u003e\n\u003ch2\u003eLicense\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e0BSD license\u003c/strong\u003e — the project license has been changed from MIT to \u003ca href=\"https://opensource.org/license/0bsd\"\u003e0BSD\u003c/a\u003e, a maximally permissive license with no attribution requirement. All prior 7.x releases should also be considered 0BSD licensed as of this release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003emime_type\u003c/code\u003e field to detection results — identifies file types for both binary (via magic number matching) and text content. Returned in all \u003ccode\u003edetect()\u003c/code\u003e, \u003ccode\u003edetect_all()\u003c/code\u003e, and \u003ccode\u003eUniversalDetector\u003c/code\u003e results. (\u003ca href=\"https://redirect.github.com/chardet/chardet/pull/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003epipeline/magic.py\u003c/code\u003e module detects 40+ binary file formats including images, audio/video, archives, documents, executables, and fonts. ZIP-based formats (XLSX, DOCX, JAR, APK, EPUB, wheel, OpenDocument) are distinguished by entry filenames. (\u003ca href=\"https://redirect.github.com/chardet/chardet/pull/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed incorrect equivalence between UTF-16-LE and UTF-16-BE in accuracy testing — these are distinct encodings with different byte order, not interchangeable\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded 4 new modules to mypyc compilation (orchestrator, confusion, magic, ascii), bringing the total to 11 compiled modules\u003c/li\u003e\n\u003cli\u003eCapped statistical scoring at 16 KB — bigram models converge quickly, so large files no longer score the full 200 KB. Worst-case detection time dropped from 62ms to 26ms with no accuracy loss.\u003c/li\u003e\n\u003cli\u003eReplaced \u003ccode\u003edataclasses.replace()\u003c/code\u003e with direct \u003ccode\u003eDetectionResult\u003c/code\u003e construction on hot paths, eliminating ~354k function calls per full test suite run\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild\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/chardet/chardet/blob/main/docs/changelog.rst\"\u003echardet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e.. note::\u003c/p\u003e\n\u003cp\u003eEntries marked \u0026quot;via Claude\u0026quot; were developed with\n\u003ccode\u003eClaude Code \u0026lt;https://claude.ai/code\u0026gt;\u003c/code\u003e_.\nDan directed the design, reviewed all output, and takes responsibility for\nthe result. Unmarked entries by Dan were written without AI assistance.\u003c/p\u003e\n\u003ch2\u003e7.4.0 (2026-03-26)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ePerformance:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched to dense zlib-compressed model format (v2): models are now\nstored as contiguous \u003ccode\u003ememoryview\u003c/code\u003e slices of a single decompressed\nblob, eliminating per-model \u003ccode\u003estruct.unpack\u003c/code\u003e overhead. Cold start\n(import + first detect) dropped from ~75ms to ~13ms with mypyc.\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e_ via Claude,\n\u003ccode\u003e[#354](https://github.com/chardet/chardet/issues/354) \u0026lt;https://github.com/chardet/chardet/pull/354\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eAccuracy:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAccuracy improved from 98.6% to 99.3% (2499/2517 files) through\na combination of training and scoring improvements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEliminated train/test data overlap by content-fingerprinting test\nsuite articles and excluding them from training data\n(\u003ccode\u003e[#351](https://github.com/chardet/chardet/issues/351) \u0026lt;https://github.com/chardet/chardet/pull/351\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded MADLAD-400 and Wikipedia as supplemental training sources to\nfill gaps left by exclusion filtering\n(\u003ccode\u003e[#351](https://github.com/chardet/chardet/issues/351) \u0026lt;https://github.com/chardet/chardet/pull/351\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eImproved non-ASCII bigram scoring: high-byte bigrams are now\npreserved during training (instead of being crushed by global\nnormalization), and weighted by per-bigram IDF so encoding-specific\nbyte patterns contribute proportionally to how discriminative they\nare (\u003ccode\u003e[#352](https://github.com/chardet/chardet/issues/352) \u0026lt;https://github.com/chardet/chardet/pull/352\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded encoding-aware substitution filtering: character substitutions\nduring training now only apply for characters the target encoding\ncannot represent\u003c/li\u003e\n\u003cli\u003eIncreased training samples from 15K to 25K per language/encoding pair\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e_ via Claude)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug Fixes:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded dedicated structural analyzers for CP932, CP949, and\nBig5-HKSCS: these superset encodings previously shared their base\nencoding's byte-range analyzer, missing extended ranges unique to each\nsuperset\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/e37cf3c4ece6beba9b6412f3bbd3e849ed2bbffb\"\u003e\u003ccode\u003ee37cf3c\u003c/code\u003e\u003c/a\u003e fix: prevent dirty-tree version in Windows mypyc wheel builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/f9f5af268407b8e7c189fa269423de77e2795378\"\u003e\u003ccode\u003ef9f5af2\u003c/code\u003e\u003c/a\u003e Fix a couple errors in the changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/53755de0c345e2dbc7d32ac89044e32ab284b726\"\u003e\u003ccode\u003e53755de\u003c/code\u003e\u003c/a\u003e chore: add .superpowers/ to .gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/3a20df6e8873d1860be53a72453226d481c0010b\"\u003e\u003ccode\u003e3a20df6\u003c/code\u003e\u003c/a\u003e docs: update README examples with correct outputs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/17ec933c7b24e00805f2262b06aea87f9e689071\"\u003e\u003ccode\u003e17ec933\u003c/code\u003e\u003c/a\u003e docs: note train/test separation in performance.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/7296d93478c334f3406c3ecd56a8c7798659e32f\"\u003e\u003ccode\u003e7296d93\u003c/code\u003e\u003c/a\u003e docs: add footnote explaining 0 B import memory (lazy loading)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/4221536b633d7ac693b4afe5c4dbb06d7d7c8d46\"\u003e\u003ccode\u003e4221536\u003c/code\u003e\u003c/a\u003e docs: add chardet 7.0.1-7.3.0 to historical performance table\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/9dfb65b6b145fccbda2ff4f20d1a79b15b917f97\"\u003e\u003ccode\u003e9dfb65b\u003c/code\u003e\u003c/a\u003e docs: remove historical performance table spec/plan (preserved in git history)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/72413b871cf3cf2f0e3505b16356c3c8ba030027\"\u003e\u003ccode\u003e72413b8\u003c/code\u003e\u003c/a\u003e docs: add historical performance table to performance.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/cbcb80d5c3eda5bcd3c1b4e750cd7bc14cfda94b\"\u003e\u003ccode\u003ecbcb80d\u003c/code\u003e\u003c/a\u003e fix: handle None detect() results and missing venvs in benchmarks\u003c/li\u003e\n\u003cli\u003eAdditional commits v...\n\n_Description has been truncated_","html_url":"https://github.com/tektronix/tm_devices/pull/564","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tektronix%2Ftm_devices/issues/564","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/564/packages"}},{"old_version":"0.6.0","new_version":"0.6.1","update_type":"patch","path":null,"pr_created_at":"2026-03-23T23:38:13.000Z","version_change":"0.6.0 → 0.6.1","issue":{"uuid":"4124319886","node_id":"PR_kwDOMFeY887M1vyH","number":163,"state":"open","title":"python-deps(deps): bump the python-dependencies group across 1 directory with 23 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["dependabot[bot]"],"locked":false,"comments_count":5,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-23T23:38:13.000Z","updated_at":"2026-03-31T00:12:11.213Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"python-deps(deps): bump","group_name":"python-dependencies","update_count":23,"packages":[{"name":"black","old_version":"26.1.0","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"codespell","old_version":"2.4.1","new_version":"2.4.2","repository_url":"https://github.com/codespell-project/codespell"},{"name":"griffe","old_version":"2.0.0","new_version":"2.0.1","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"mkdocs-gen-files","old_version":"0.6.0","new_version":"0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-literate-nav","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/oprypin/mkdocs-literate-nav"},{"name":"mkdocs-section-index","old_version":"0.3.10","new_version":"0.3.11","repository_url":"https://github.com/oprypin/mkdocs-section-index"},{"name":"mkdocstrings-python","old_version":"2.0.2","new_version":"2.0.3","repository_url":"https://github.com/mkdocstrings/python"},{"name":"coverage","old_version":"7.13.4","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-env","old_version":"1.3.2","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pytest-env"},{"name":"certifi","old_version":"2026.1.4","new_version":"2026.2.25","repository_url":"https://github.com/certifi/python-certifi"},{"name":"chardet","old_version":"5.2.0","new_version":"7.2.0","repository_url":"https://github.com/chardet/chardet"},{"name":"charset-normalizer","old_version":"3.4.4","new_version":"3.4.6","repository_url":"https://github.com/jawah/charset_normalizer"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [pylint](https://github.com/pylint-dev/pylint), [black](https://github.com/psf/black), [codespell](https://github.com/codespell-project/codespell), [griffe](https://github.com/mkdocstrings/griffe), [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files), [mkdocs-literate-nav](https://github.com/oprypin/mkdocs-literate-nav), [mkdocs-section-index](https://github.com/oprypin/mkdocs-section-index), [mkdocstrings-python](https://github.com/mkdocstrings/python), [coverage](https://github.com/coveragepy/coveragepy), [pytest-cov](https://github.com/pytest-dev/pytest-cov), [pytest-env](https://github.com/pytest-dev/pytest-env), [certifi](https://github.com/certifi/python-certifi), [chardet](https://github.com/chardet/chardet), [charset-normalizer](https://github.com/jawah/charset_normalizer), [python-dotenv](https://github.com/theskumar/python-dotenv), [pytz](https://github.com/stub42/pytz), [setuptools](https://github.com/pypa/setuptools), griffecli, griffelib, [mkdocs-get-deps](https://github.com/mkdocs/get-deps), [platformdirs](https://github.com/tox-dev/platformdirs), [pydantic-core](https://github.com/pydantic/pydantic-core) and [typeguard](https://github.com/agronholm/typeguard) to permit the latest version.\nUpdates `pylint` to 4.0.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/88e1ab7545a4af4aea15c305a154c164a95ab842\"\u003e\u003ccode\u003e88e1ab7\u003c/code\u003e\u003c/a\u003e Bump pylint to 4.0.5, update changelog (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10860\"\u003e#10860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/d96d489a1743d32b6bfa53fc0f69a4333209a146\"\u003e\u003ccode\u003ed96d489\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Relax isort version constraint to allow isort 8 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/0b08ccb014c265700f244a885bdcbdfa3a03de46\"\u003e\u003ccode\u003e0b08ccb\u003c/code\u003e\u003c/a\u003e Fix dynamic color mapping for \u0026quot;fail-on\u0026quot; messages when using multiple reporter...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/154dba43276e8232a2e1cb8f90bfcc63886f3460\"\u003e\u003ccode\u003e154dba4\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix FP for \u003ccode\u003einvalid-name\u003c/code\u003e with \u003ccode\u003etyping.Final\u003c/code\u003e on...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/7b73bfdedf275935b9c5b43a6aeda5cc648b4847\"\u003e\u003ccode\u003e7b73bfd\u003c/code\u003e\u003c/a\u003e Disable unspecified-encoding for py-version above Python 3.15 (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10800\"\u003e#10800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/4cc98be8b7786dbc6692493fe9cedb8585af5518\"\u003e\u003ccode\u003e4cc98be\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix setting options for import order checker (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/f0d30a27b510d69f846e3aaa0054cf0a1412923c\"\u003e\u003ccode\u003ef0d30a2\u003c/code\u003e\u003c/a\u003e Sync astroid version with requirements file again\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/38bdf024648724e6aea017e62d3b57cb44097ec3\"\u003e\u003ccode\u003e38bdf02\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix \u003ccode\u003elogging-unsupported-format\u003c/code\u003e when logging ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/f08c33ae3e691eed868e49c0d15270dc6e6a0d6c\"\u003e\u003ccode\u003ef08c33a\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Properly detect \u003ccode\u003eself.fail()\u003c/code\u003e as a terminating...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pylint-dev/pylint/compare/v4.0.4...v4.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 26.1.0 to 26.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop evenloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop eventloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\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/c6755bb741b6481d6b3d3bb563c83fa060db96c9\"\u003e\u003ccode\u003ec6755bb\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5046\"\u003e#5046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69973fd6950985fbeb1090d96da717dc4d8380b0\"\u003e\u003ccode\u003e69973fd\u003c/code\u003e\u003c/a\u003e Harden blackd browser-facing request handling (\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4937fe6cf241139ddbfc16b0bdbb5b422798909d\"\u003e\u003ccode\u003e4937fe6\u003c/code\u003e\u003c/a\u003e Fix some shenanigans with the cache file and IPython (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2e641d174469c505d5ae905e75d4c769597e681f\"\u003e\u003ccode\u003e2e641d1\u003c/code\u003e\u003c/a\u003e docs: remove outdated Black Playground references (\u003ca href=\"https://redirect.github.com/psf/black/issues/5044\"\u003e#5044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c014b22a2d5e0632587b47b81151658bddfa0b88\"\u003e\u003ccode\u003ec014b22\u003c/code\u003e\u003c/a\u003e Remove unused internal code (\u003ca href=\"https://redirect.github.com/psf/black/issues/5041\"\u003e#5041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0dae20b2d009f2f03de8696d06b0c947d3abafc9\"\u003e\u003ccode\u003e0dae20b\u003c/code\u003e\u003c/a\u003e Add new changelog (\u003ca href=\"https://redirect.github.com/psf/black/issues/5036\"\u003e#5036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c5c1cbddd92cecb554ac2a77a24139dd76831030\"\u003e\u003ccode\u003ec5c1cbd\u003c/code\u003e\u003c/a\u003e Minor release patches (\u003ca href=\"https://redirect.github.com/psf/black/issues/5035\"\u003e#5035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7e5a828c37d71b6a6666e28eed444816def6a8f4\"\u003e\u003ccode\u003e7e5a828\u003c/code\u003e\u003c/a\u003e docs: clarify relationship between Black style and PEP 8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5025\"\u003e#5025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69705deb8776e7c5e585668da106d1abe2cb8d77\"\u003e\u003ccode\u003e69705de\u003c/code\u003e\u003c/a\u003e docs: add clearer pyproject configuration guidance (\u003ca href=\"https://redirect.github.com/psf/black/issues/5026\"\u003e#5026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/35ea67920b7f6ac8e09be1c47278752b1e827f76\"\u003e\u003ccode\u003e35ea679\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5032\"\u003e#5032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/26.1.0...26.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `codespell` from 2.4.1 to 2.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codespell-project/codespell/releases\"\u003ecodespell's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with chardet 7+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix and clarify cases in ignore patterns by \u003ca href=\"https://github.com/DanielYang59\"\u003e\u003ccode\u003e@​DanielYang59\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3583\"\u003ecodespell-project/codespell#3583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecodespell-private.yml: Do not codespell digital signature files by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3623\"\u003ecodespell-project/codespell#3623\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/codespell-project/codespell/pull/3634\"\u003ecodespell-project/codespell#3634\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enumbes-\u0026gt;numbers and numbesr-\u0026gt;numbers by \u003ca href=\"https://github.com/skshetry\"\u003e\u003ccode\u003e@​skshetry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3635\"\u003ecodespell-project/codespell#3635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling corrections for disclose and variables. by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3622\"\u003ecodespell-project/codespell#3622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling correction for Vulnererability and variants. by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3625\"\u003ecodespell-project/codespell#3625\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove lets-\u0026gt;let's by \u003ca href=\"https://github.com/Piedone\"\u003e\u003ccode\u003e@​Piedone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3633\"\u003ecodespell-project/codespell#3633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd corrections for \u0026quot;dictate\u0026quot; by \u003ca href=\"https://github.com/jdufresne\"\u003e\u003ccode\u003e@​jdufresne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3636\"\u003ecodespell-project/codespell#3636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd specicification (and pl) typo by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3639\"\u003ecodespell-project/codespell#3639\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;blueish\u0026quot; correction by \u003ca href=\"https://github.com/hadess\"\u003e\u003ccode\u003e@​hadess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3510\"\u003ecodespell-project/codespell#3510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u0026quot;lighting\u0026quot; as an option to fix \u0026quot;lighning\u0026quot; by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3648\"\u003ecodespell-project/codespell#3648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert adding \u003ccode\u003elien\u003c/code\u003e to the rare dictionary  by \u003ca href=\"https://github.com/nikolaik\"\u003e\u003ccode\u003e@​nikolaik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3631\"\u003ecodespell-project/codespell#3631\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u0026quot;ane\u0026quot; could have been \u0026quot;one\u0026quot; by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3645\"\u003ecodespell-project/codespell#3645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling correction for \u0026quot;priort\u0026quot; by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3647\"\u003ecodespell-project/codespell#3647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;fix\u0026quot; of \u0026quot;deques\u0026quot; - it is quite legit by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3649\"\u003ecodespell-project/codespell#3649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral new suggestions by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3621\"\u003ecodespell-project/codespell#3621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd proposal constraints to containts by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3652\"\u003ecodespell-project/codespell#3652\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditions dleay,infp,practive,utiliy by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3643\"\u003ecodespell-project/codespell#3643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd calncelled and its variations by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3650\"\u003ecodespell-project/codespell#3650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse raw strings for regex by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3654\"\u003ecodespell-project/codespell#3654\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow multiple spaces before codespell:ignore by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3653\"\u003ecodespell-project/codespell#3653\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded correction from \u003ccode\u003etimeour\u003c/code\u003e to \u003ccode\u003etimeout\u003c/code\u003e by \u003ca href=\"https://github.com/jamesbraza\"\u003e\u003ccode\u003e@​jamesbraza\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3656\"\u003ecodespell-project/codespell#3656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd typos found in various software projects by \u003ca href=\"https://github.com/luzpaz\"\u003e\u003ccode\u003e@​luzpaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3640\"\u003ecodespell-project/codespell#3640\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/codespell-project/codespell/pull/3659\"\u003ecodespell-project/codespell#3659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd codespell suggestions for enabke and friends by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3657\"\u003ecodespell-project/codespell#3657\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEND: add \u0026quot;queues\u0026quot; (plural from queue) as possible fix for ques by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3591\"\u003ecodespell-project/codespell#3591\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eagreegate, lesda, realod, colouer by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3665\"\u003ecodespell-project/codespell#3665\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit version in documentation by \u003ca href=\"https://github.com/prchoward\"\u003e\u003ccode\u003e@​prchoward\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3666\"\u003ecodespell-project/codespell#3666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMAINT: Rename CI file and run name by \u003ca href=\"https://github.com/larsoner\"\u003e\u003ccode\u003e@​larsoner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3667\"\u003ecodespell-project/codespell#3667\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epreoccuption-\u0026gt;preoccupation; occuption-\u0026gt;occupation by \u003ca href=\"https://github.com/TheGiraffe3\"\u003e\u003ccode\u003e@​TheGiraffe3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3668\"\u003ecodespell-project/codespell#3668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSuggestions for: checkto, diminsion, waitfor by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3670\"\u003ecodespell-project/codespell#3670\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTypos found in sigstore-python by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3664\"\u003ecodespell-project/codespell#3664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eusgin-\u0026gt;using by \u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3672\"\u003ecodespell-project/codespell#3672\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd typos found in various software projects by \u003ca href=\"https://github.com/luzpaz\"\u003e\u003ccode\u003e@​luzpaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3669\"\u003ecodespell-project/codespell#3669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd coered -\u0026gt; coerced by \u003ca href=\"https://github.com/effigies\"\u003e\u003ccode\u003e@​effigies\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3680\"\u003ecodespell-project/codespell#3680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebackwward(s)-\u0026gt;backward(s), onwward(s)-\u0026gt;onward(s) by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3682\"\u003ecodespell-project/codespell#3682\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/codespell-project/codespell/pull/3685\"\u003ecodespell-project/codespell#3685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etelemetery-\u0026gt;telemetry by \u003ca href=\"https://github.com/august-soderberg\"\u003e\u003ccode\u003e@​august-soderberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3686\"\u003ecodespell-project/codespell#3686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd hexedacimal and similar typos by \u003ca href=\"https://github.com/Akuli\"\u003e\u003ccode\u003e@​Akuli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3692\"\u003ecodespell-project/codespell#3692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd rounted-\u0026gt;routed, rounded and friends by \u003ca href=\"https://github.com/peternewman\"\u003e\u003ccode\u003e@​peternewman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3693\"\u003ecodespell-project/codespell#3693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd symmectric and similar typos by \u003ca href=\"https://github.com/Akuli\"\u003e\u003ccode\u003e@​Akuli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3694\"\u003ecodespell-project/codespell#3694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI on Windows: pip upgrade pip by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3698\"\u003ecodespell-project/codespell#3698\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/codespell-project/codespell/commit/2ccb47ff45ad361a21071a7eedda4c37e6ae8c5a\"\u003e\u003ccode\u003e2ccb47f\u003c/code\u003e\u003c/a\u003e Compat with chardet 7 (\u003ca href=\"https://redirect.github.com/codespell-project/codespell/issues/3886\"\u003e#3886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/4ec53bf6a3e510c64900d5ee838abd99d49b2910\"\u003e\u003ccode\u003e4ec53bf\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/2a4acba3f282f1b5ccb7ad8b57bc991810663a44\"\u003e\u003ccode\u003e2a4acba\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/be17cacc96a5ee3f014e048f5962cfdb7145e096\"\u003e\u003ccode\u003ebe17cac\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/04a071280d56148cab14249ccc8d4181c0066b3c\"\u003e\u003ccode\u003e04a0712\u003c/code\u003e\u003c/a\u003e Bump ruff (\u003ca href=\"https://redirect.github.com/codespell-project/codespell/issues/3879\"\u003e#3879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/583d8796d92eb58e15072db03e5b756be45f638a\"\u003e\u003ccode\u003e583d879\u003c/code\u003e\u003c/a\u003e avoide-\u0026gt;avoid, avoided, avoids,\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/1f59f34d7c6d1642fdb325d9dfa49cf9eb5f692a\"\u003e\u003ccode\u003e1f59f34\u003c/code\u003e\u003c/a\u003e Add correction for 'foudation' to 'foundation'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/e047fdafb8620b08a86349014487886bcd9c2205\"\u003e\u003ccode\u003ee047fda\u003c/code\u003e\u003c/a\u003e Add spelling correction for gather and variants.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/b5cd66de14b8f65b0f45fabbe1c89bd69ea60939\"\u003e\u003ccode\u003eb5cd66d\u003c/code\u003e\u003c/a\u003e respondant-\u0026gt;respondent\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/codespell-project/codespell/commit/92125a3814fa6e86cd2055385916ce5186d3e5df\"\u003e\u003ccode\u003e92125a3\u003c/code\u003e\u003c/a\u003e Add detection of ivoice and variants.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/codespell-project/codespell/compare/v2.4.1...v2.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 2.0.0 to 2.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2026-03-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting type parameters through aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/75c1236078bdb38ccaf95330d3c635f8db3806b7\"\u003e75c1236\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/449\"\u003eIssue-449\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/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2026-03-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting type parameters through aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/75c1236078bdb38ccaf95330d3c635f8db3806b7\"\u003e75c1236\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/449\"\u003eIssue-449\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/mkdocstrings/griffe/commit/8df2c4061d01f8c7a3ded03d63505fef0052092a\"\u003e\u003ccode\u003e8df2c40\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1236192681a9492133efd01bcd77d018fa3d4630\"\u003e\u003ccode\u003e1236192\u003c/code\u003e\u003c/a\u003e chore: Update ty comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/75c1236078bdb38ccaf95330d3c635f8db3806b7\"\u003e\u003ccode\u003e75c1236\u003c/code\u003e\u003c/a\u003e fix: Allow setting type parameters through aliases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/862a891818d7182204e213ef216b6b5f3c6dc106\"\u003e\u003ccode\u003e862a891\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2666aaabe9b93f70c3dcde46ac284251a065a5c1\"\u003e\u003ccode\u003e2666aaa\u003c/code\u003e\u003c/a\u003e chore: Update sponsors section in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/e30c32143149ab124f3ade14523201b80a9cbfd9\"\u003e\u003ccode\u003ee30c321\u003c/code\u003e\u003c/a\u003e style: Format code for Python 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/051394aa21cd0884a7480a6892c07d62bf0ca451\"\u003e\u003ccode\u003e051394a\u003c/code\u003e\u003c/a\u003e chore: Add back title to type-check duty\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5f662d4658a63ebf8ab25fe124747b4725f34617\"\u003e\u003ccode\u003e5f662d4\u003c/code\u003e\u003c/a\u003e ci: Update Ruff's config (Python target, output format)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/19775450e72c2c6291e0e88ebbd7c0de1d3c99d6\"\u003e\u003ccode\u003e1977545\u003c/code\u003e\u003c/a\u003e ci: Type-check with ty\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8efecdc98a92b3f4d30d8af0fd93ce4acf90d76d\"\u003e\u003ccode\u003e8efecdc\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/griffe/compare/2.0.0...2.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.6.0 to 0.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-literate-nav` from 0.6.2 to 0.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/releases\"\u003emkdocs-literate-nav's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/pull/39\"\u003eoprypin/mkdocs-literate-nav#39\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ehttps://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.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/oprypin/mkdocs-literate-nav/commit/b91268c263f61e38a7e27f77ccf38ec287e0c0b5\"\u003e\u003ccode\u003eb91268c\u003c/code\u003e\u003c/a\u003e v0.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/cee9ec49a1523036081378a39bda9fa014432526\"\u003e\u003ccode\u003ecee9ec4\u003c/code\u003e\u003c/a\u003e Exclude properdocs when testing minimal dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/ea523f5864f59fb7939f84cd4400df67280ad52c\"\u003e\u003ccode\u003eea523f5\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/258b15a15a3e25cedc816d0a5a971acfdb86541e\"\u003e\u003ccode\u003e258b15a\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-section-index` from 0.3.10 to 0.3.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/releases\"\u003emkdocs-section-index's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/pull/27\"\u003eoprypin/mkdocs-section-index#27\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ehttps://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\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/oprypin/mkdocs-section-index/commit/a8235f6f8eb5927b966a3aaea8afe5fa161ecece\"\u003e\u003ccode\u003ea8235f6\u003c/code\u003e\u003c/a\u003e v0.3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/ac66dfda53834d79ce8e0af6f340dddd7cde2bf9\"\u003e\u003ccode\u003eac66dfd\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/issues/27\"\u003e#27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/32866cd83993ee3eefbac0fcc13911692796d8f6\"\u003e\u003ccode\u003e32866cd\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocstrings-python` from 2.0.2 to 2.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/python/releases\"\u003emkdocstrings-python's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.3\"\u003e2.0.3\u003c/a\u003e - 2026-02-20\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/2.0.2...2.0.3\"\u003eCompare with 2.0.2\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBuild\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDepend on griffelib instead of griffe (\u003ca href=\"https://github.com/mkdocstrings/python/commit/770a5f69d801f24f0b36d1e671a540196e06f710\"\u003e770a5f6\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/python/blob/main/CHANGELOG.md\"\u003emkdocstrings-python's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.3\"\u003e2.0.3\u003c/a\u003e - 2026-02-20\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/2.0.2...2.0.3\"\u003eCompare with 2.0.2\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBuild\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDepend on griffelib instead of griffe (\u003ca href=\"https://github.com/mkdocstrings/python/commit/770a5f69d801f24f0b36d1e671a540196e06f710\"\u003e770a5f6\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/a0b99c5ed6ac44b627e2e57375e474e0939ea02e\"\u003e\u003ccode\u003ea0b99c5\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/770a5f69d801f24f0b36d1e671a540196e06f710\"\u003e\u003ccode\u003e770a5f6\u003c/code\u003e\u003c/a\u003e build: Depend on griffelib instead of griffe\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/bf8caaf76efcfe3572b40f4129117ed32bdc2ee7\"\u003e\u003ccode\u003ebf8caaf\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:mkdocstrings/python\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/95f58aa56a78df160fc66892815cb4c49d291044\"\u003e\u003ccode\u003e95f58aa\u003c/code\u003e\u003c/a\u003e ci: Minor lint fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/186d6cfac78dbc96bcb753473ceb68db5fa46f73\"\u003e\u003ccode\u003e186d6cf\u003c/code\u003e\u003c/a\u003e chore: Update sponsors section in README\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/python/compare/2.0.2...2.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.4 to 7.13.5\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.5 — 2026-03-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eissue 2138\u003c/code\u003e_ describes a memory leak that happened when repeatedly\nusing the Coverage API with in-memory data. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the markdown-formatted coverage report didn't fully escape special\ncharacters in file paths (\u003ccode\u003eissue 2141\u003c/code\u003e\u003cem\u003e). This would be very unlikely to\ncause a problem, but now it's done properly, thanks to \u003ccode\u003eEllie Ayla \u0026lt;pull 2142_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the C extension wouldn't build on VS2019, but now it does (\u003ccode\u003eissue 2145\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2138: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2138\"\u003ecoveragepy/coveragepy#2138\u003c/a\u003e\n.. _issue 2141: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2141\"\u003ecoveragepy/coveragepy#2141\u003c/a\u003e\n.. _pull 2142: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2142\"\u003ecoveragepy/coveragepy#2142\u003c/a\u003e\n.. _issue 2145: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2145\"\u003ecoveragepy/coveragepy#2145\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-4:\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/c88da144eef8cf78424331e5cbbde3e002eef43f\"\u003e\u003ccode\u003ec88da14\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e2ac3e1ef644370101ff365acad3431d16076512\"\u003e\u003ccode\u003ee2ac3e1\u003c/code\u003e\u003c/a\u003e build: sample HTML shouldn't include the status.json file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/910f8f336541c2dcb4e9ec468144c7eb4a7779ac\"\u003e\u003ccode\u003e910f8f3\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3a4819c24d3d20cb2670b99141517812ffa3fab0\"\u003e\u003ccode\u003e3a4819c\u003c/code\u003e\u003c/a\u003e style: make workflows more uniform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2a53705f5fe588158b8a8d37ff3beee86388b9e4\"\u003e\u003ccode\u003e2a53705\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 4 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e7c878d201db819416b978150944d9a842d22b18\"\u003e\u003ccode\u003ee7c878d\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ab4db406a9c35acf977cf3ddb94a78d696b77bc5\"\u003e\u003ccode\u003eab4db40\u003c/code\u003e\u003c/a\u003e build: use --generate-hashes when pinning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a438753eef870441044cef588e29ce4b9a28adf1\"\u003e\u003ccode\u003ea438753\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/7b33457d2c6367dfd5a563239998b3980444e090\"\u003e\u003ccode\u003e7b33457\u003c/code\u003e\u003c/a\u003e refactor: some leftover pyupgrade 3.10 bits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2ff968db91a7cdafe6f6569ac7659a3a93a2da07\"\u003e\u003ccode\u003e2ff968d\u003c/code\u003e\u003c/a\u003e refactor: this type wasn't used anywhere\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.4...7.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.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.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-env` from 1.3.2 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-env/releases\"\u003epytest-env's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(env): preserve existing env values by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/pull/213\"\u003epytest-dev/pytest-env#213\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/pytest-env/compare/1.5.1...1.6.0\"\u003ehttps://github.com/pytest-dev/pytest-env/compare/1.5.1...1.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.5.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd permissions to workflows by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/pull/203\"\u003epytest-dev/pytest-env#203\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd SECURITY.md to .github/ by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/pull/206\"\u003epytest-dev/pytest-env#206\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing .github config files by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/pull/207\"\u003epytest-dev/pytest-env#207\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize .github files to .yaml suffix by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/pull/208\"\u003epytest-dev/pytest-env#208\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix verbose source attribution when falling back to INI env by \u003ca href=\"https://github.com/shuofengzhang\"\u003e\u003ccode\u003e@​shuofengzhang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/pull/211\"\u003epytest-dev/pytest-env#211\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/shuofengzhang\"\u003e\u003ccode\u003e@​shuofengzhang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/pull/211\"\u003epytest-dev/pytest-env#211\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/pytest-env/compare/1.5.0...1.5.1\"\u003ehttps://github.com/pytest-dev/pytest-env/compare/1.5.0...1.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.5.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(plugin): add --pytest-env-verbose for debugging env assignments by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/pull/199\"\u003epytest-dev/pytest-env#199\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/pytest-env/compare/1.4.0...1.5.0\"\u003ehttps://github.com/pytest-dev/pytest-env/compare/1.4.0...1.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(cli): add --envfile option for runtime environment switching by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/pull/197\"\u003epytest-dev/pytest-env#197\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/pytest-env/compare/1.3.2...1.4.0\"\u003ehttps://github.com/pytest-dev/pytest-env/compare/1.3.2...1.4.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/pytest-dev/pytest-env/commit/8bd22d1b9d9d7594c408040610868743ca3d5a9b\"\u003e\u003ccode\u003e8bd22d1\u003c/code\u003e\u003c/a\u003e ✨ feat(env): preserve existing env values (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/issues/213\"\u003e#213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-env/commit/81f9e0e19d17169f03d9c078818421f34c45a67d\"\u003e\u003ccode\u003e81f9e0e\u003c/code\u003e\u003c/a\u003e Fix verbose source attribution when falling back to INI env (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/issues/211\"\u003e#211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-env/commit/81dc95d54f09ebb9b6e5f704b86a4bb60552b08b\"\u003e\u003ccode\u003e81dc95d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-env/commit/439cc76fecbfbb95b6d3123a32bbc8030a9f95c0\"\u003e\u003ccode\u003e439cc76\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/issues/209\"\u003e#209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-env/commit/b1b498e28cb76863a6e88c713a9bb09cdfbb0857\"\u003e\u003ccode\u003eb1b498e\u003c/code\u003e\u003c/a\u003e Standardize .github files to .yaml suffix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-env/commit/066dadc7b4f8a40818e2c19c6bbd7281671eb081\"\u003e\u003ccode\u003e066dadc\u003c/code\u003e\u003c/a\u003e Add missing .github config files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-env/commit/7d01327e395f0080dd6256c0cf30f2a8693c3c32\"\u003e\u003ccode\u003e7d01327\u003c/code\u003e\u003c/a\u003e Add SECURITY.md to .github/\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-env/commit/04259c91dfbd4b77a053bcad5fd63d5d7d78ae5d\"\u003e\u003ccode\u003e04259c9\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/issues/205\"\u003e#205\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-env/commit/4fdb9d8d6defe6fc40069455ec672fa3f1bef51f\"\u003e\u003ccode\u003e4fdb9d8\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/issues/204\"\u003e#204\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-env/commit/672e44f059e03870caf87054aa7426411a8a9658\"\u003e\u003ccode\u003e672e44f\u003c/code\u003e\u003c/a\u003e Add permissions to workflows (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-env/issues/203\"\u003e#203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-env/compare/1.3.2...1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2026.1.4 to 2026.2.25\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/8571a4ba5205675107f9026d0008ad2d7a2778bf\"\u003e\u003ccode\u003e8571a4b\u003c/code\u003e\u003c/a\u003e 2026.02.25 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6f7de00579d292af565bbb8a947643219794eb6d\"\u003e\u003ccode\u003e6f7de00\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 8.0.0 to 8.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a1de59b15105cad768afed4f066b36171134f04a\"\u003e\u003ccode\u003ea1de59b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.1 to 6.0.2 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/7f5ade5d8da615fd366e8de6a668271251c45d34\"\u003e\u003ccode\u003e7f5ade5\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.1.0 to 6.2.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2026.01.04...2026.02.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `chardet` from 5.2.0 to 7.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/chardet/chardet/releases\"\u003echardet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003echardet 7.2.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003einclude_encodings\u003c/code\u003e and \u003ccode\u003eexclude_encodings\u003c/code\u003e parameters to \u003ccode\u003edetect()\u003c/code\u003e, \u003ccode\u003edetect_all()\u003c/code\u003e, and \u003ccode\u003eUniversalDetector\u003c/code\u003e — restrict or exclude specific encodings from the candidate set, with corresponding \u003ccode\u003e-i\u003c/code\u003e/\u003ccode\u003e--include-encodings\u003c/code\u003e and \u003ccode\u003e-x\u003c/code\u003e/\u003ccode\u003e--exclude-encodings\u003c/code\u003e CLI flags (\u003ca href=\"https://redirect.github.com/chardet/chardet/pull/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eno_match_encoding\u003c/code\u003e (default \u003ccode\u003e\u0026quot;cp1252\u0026quot;\u003c/code\u003e) and \u003ccode\u003eempty_input_encoding\u003c/code\u003e (default \u003ccode\u003e\u0026quot;utf-8\u0026quot;\u003c/code\u003e) parameters — control which encoding is returned when no candidate survives the pipeline or the input is empty, with corresponding CLI flags (\u003ca href=\"https://redirect.github.com/chardet/chardet/pull/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e-l\u003c/code\u003e/\u003ccode\u003e--language\u003c/code\u003e flag to \u003ccode\u003echardetect\u003c/code\u003e CLI — shows the detected language (ISO 639-1 code and English name) alongside the encoding (\u003ca href=\"https://redirect.github.com/chardet/chardet/pull/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed null-separated ASCII data being misdetected as UTF-16-BE (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/346\"\u003e#346\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/chardet/chardet/pull/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://chardet.readthedocs.io/en/latest/changelog.html\"\u003ehttps://chardet.readthedocs.io/en/latest/changelog.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003echardet 7.1.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded PEP 263 encoding declaration detection — \u003ccode\u003e# -*- coding: ... -*-\u003c/code\u003e and \u003ccode\u003e# coding=...\u003c/code\u003e declarations on lines 1–2 of Python source files are now recognized with confidence 0.95 (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/249\"\u003e#249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003echardet.universaldetector\u003c/code\u003e backward-compatibility stub so that \u003ccode\u003efrom chardet.universaldetector import UniversalDetector\u003c/code\u003e works with a deprecation warning (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed false UTF-7 detection of ASCII text containing \u003ccode\u003e++\u003c/code\u003e or \u003ccode\u003e+word\u003c/code\u003e patterns (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/332\"\u003e#332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed 0.5s startup cost on first \u003ccode\u003edetect()\u003c/code\u003e call — model norms are now computed during loading instead of lazily iterating 21M entries (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed undocumented encoding name changes between chardet 5.x and 7.0 — \u003ccode\u003edetect()\u003c/code\u003e now returns chardet 5.x-compatible names by default (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved ISO-2022-JP family detection — recognizes ESC sequences for ISO-2022-JP-2004 (JIS X 0213) and ISO-2022-JP-EXT (JIS X 0201 Kana)\u003c/li\u003e\n\u003cli\u003eFixed silent truncation of corrupt model data (\u003ccode\u003eiter_unpack\u003c/code\u003e yielded fewer tuples instead of raising)\u003c/li\u003e\n\u003cli\u003eFixed incorrect date in LICENSE\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e5.5x faster first-detect time (~0.42s → ~0.075s) by computing model norms as a side-product of \u003ccode\u003eload_models()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e~40% faster model parsing via \u003ccode\u003estruct.iter_unpack\u003c/code\u003e for bulk entry extraction (eliminates ~305K individual \u003ccode\u003eunpack\u003c/code\u003e calls)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew API parameters\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003ecompat_names\u003c/code\u003e parameter (default \u003ccode\u003eTrue\u003c/code\u003e) to \u003ccode\u003edetect()\u003c/code\u003e, \u003ccode\u003edetect_all()\u003c/code\u003e, and \u003ccode\u003eUniversalDetector\u003c/code\u003e — set to \u003ccode\u003eFalse\u003c/code\u003e to get raw Python codec names instead of chardet 5.x/6.x compatible display names\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eprefer_superset\u003c/code\u003e parameter (default \u003ccode\u003eFalse\u003c/code\u003e) — remaps legacy ISO/subset encodings to their modern Windows/CP superset equivalents (e.g., ASCII → Windows-1252, ISO-8859-1 → Windows-1252). \u003cstrong\u003eThis will default to \u003ccode\u003eTrue\u003c/code\u003e in the next major version (8.0).\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated \u003ccode\u003eshould_rename_legacy\u003c/code\u003e in favor of \u003ccode\u003eprefer_superset\u003c/code\u003e — a deprecation warning is emitted when used\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched internal canonical encoding names to Python codec names (e.g., \u003ccode\u003e\u0026quot;utf-8\u0026quot;\u003c/code\u003e instead of \u003ccode\u003e\u0026quot;UTF-8\u0026quot;\u003c/code\u003e), with \u003ccode\u003ecompat_names\u003c/code\u003e controlling the public output format\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003elookup_encoding()\u003c/code\u003e to \u003ccode\u003eregistry\u003c/code\u003e for case-insensitive resolution of arbitrary encoding name input to canonical names\u003c/li\u003e\n\u003cli\u003eAchieved 100% line coverage across all source modules (+31 tests)\u003c/li\u003e\n\u003cli\u003eUpdated benchmark numbers: 98.2% encoding accuracy, 95.2% language accuracy on 2,510 test files\u003c/li\u003e\n\u003cli\u003ePinned test-data cloning to chardet release version tags for reproducible builds\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href=\"https://chardet.readthedocs.io/en/latest/changelog.html\"\u003ehttps://chardet.readthedocs.io/en/latest/changelog.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.0.1\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/chardet/chardet/blob/main/docs/changelog.rst\"\u003echardet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.0 (2026-03-17)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFeatures:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003einclude_encodings\u003c/code\u003e and \u003ccode\u003eexclude_encodings\u003c/code\u003e parameters to\n:func:\u003ccode\u003e~chardet.detect\u003c/code\u003e, :func:\u003ccode\u003e~chardet.detect_all\u003c/code\u003e, and\n:class:\u003ccode\u003e~chardet.UniversalDetector\u003c/code\u003e — restrict or exclude specific\nencodings from the candidate set, with corresponding\n\u003ccode\u003e-i\u003c/code\u003e/\u003ccode\u003e--include-encodings\u003c/code\u003e and \u003ccode\u003e-x\u003c/code\u003e/\u003ccode\u003e--exclude-encodings\u003c/code\u003e\nCLI flags\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e[#343](https://github.com/chardet/chardet/issues/343) \u0026lt;https://github.com/chardet/chardet/pull/343\u0026gt;\u003c/code\u003e\u003c/em\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eno_match_encoding\u003c/code\u003e (default \u003ccode\u003e\u0026quot;cp1252\u0026quot;\u003c/code\u003e) and\n\u003ccode\u003eempty_input_encoding\u003c/code\u003e (default \u003ccode\u003e\u0026quot;utf-8\u0026quot;\u003c/code\u003e) parameters — control\nwhich encoding is returned when no candidate survives the pipeline or\nthe input is empty, with corresponding CLI flags\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e[#343](https://github.com/chardet/chardet/issues/343) \u0026lt;https://github.com/chardet/chardet/pull/343\u0026gt;\u003c/code\u003e\u003c/em\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e-l\u003c/code\u003e/\u003ccode\u003e--language\u003c/code\u003e flag to \u003ccode\u003echardetect\u003c/code\u003e CLI — shows the\ndetected language (ISO 639-1 code and English name) alongside the encoding\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e[#342](https://github.com/chardet/chardet/issues/342) \u0026lt;https://github.com/chardet/chardet/pull/342\u0026gt;\u003c/code\u003e\u003c/em\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.1.0 (2026-03-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFeatures:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded PEP 263 encoding declaration detection — \u003ccode\u003e# -*- coding: ... -*-\u003c/code\u003e\nand \u003ccode\u003e# coding=...\u003c/code\u003e declarations on lines 1–2 of Python source files are\nnow recognized with confidence 0.95\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e[#249](https://github.com/chardet/chardet/issues/249) \u0026lt;https://github.com/chardet/chardet/issues/249\u0026gt;\u003c/code\u003e\u003c/em\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003echardet.universaldetector\u003c/code\u003e backward-compatibility stub so that\n\u003ccode\u003efrom chardet.universaldetector import UniversalDetector\u003c/code\u003e works with a\ndeprecation warning\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e[#341](https://github.com/chardet/chardet/issues/341) \u0026lt;https://github.com/chardet/chardet/issues/341\u0026gt;\u003c/code\u003e\u003c/em\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFixes:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed false UTF-7 detection of ASCII text containing \u003ccode\u003e++\u003c/code\u003e or \u003ccode\u003e+word\u003c/code\u003e\npatterns\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e[#332](https://github.com/chardet/chardet/issues/332) \u0026lt;https://github.com/chardet/chardet/issues/332\u0026gt;\u003c/code\u003e\u003c/em\u003e,\n\u003ccode\u003e[#335](https://github.com/chardet/chardet/issues/335) \u0026lt;https://github.com/chardet/chardet/pull/335\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFixed 0.5s startup cost on first \u003ccode\u003edetect()\u003c/code\u003e call — model norms are now\ncomputed during loading instead of lazily iterating 21M entries\n(\u003ccode\u003eDan Blanchard \u0026lt;https://github.com/dan-blanchard\u0026gt;\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/chardet/chardet/commit/884996a2eaff06d41e829c8893525f26a8780791\"\u003e\u003ccode\u003e884996a\u003c/code\u003e\u003c/a\u003e docs: set 7.2.0 release date to 2026-03-17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/64361f8f40f45b6d8ae3365483e906c5a33c64a7\"\u003e\u003ccode\u003e64361f8\u003c/code\u003e\u003c/a\u003e docs: add CLI examples for --no-match-encoding and --empty-input-encoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/89a9a4cb0cd031c63889671f708799938afe6845\"\u003e\u003ccode\u003e89a9a4c\u003c/code\u003e\u003c/a\u003e Fix null-separated ASCII misdetected as UTF-16-BE (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/a98f09761394280f649521092df9e001dafb3506\"\u003e\u003ccode\u003ea98f097\u003c/code\u003e\u003c/a\u003e docs: add example output to all CLI commands for consistency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/d2f4ac2c8bf7f27d1ee6675a4ce03a157ecc8fce\"\u003e\u003ccode\u003ed2f4ac2\u003c/code\u003e\u003c/a\u003e docs: document 7.2.0 features (encoding filters, --language CLI flag)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/575fa96712a3c3e465a16e814e66a8137cc17531\"\u003e\u003ccode\u003e575fa96\u003c/code\u003e\u003c/a\u003e test: add include_encodings accuracy preservation tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/66e21fcfd03e584562bbc50c760141ea4ef0a351\"\u003e\u003ccode\u003e66e21fc\u003c/code\u003e\u003c/a\u003e fix: strengthen weak tests and remove duplicates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/e1428c3158ce7b9f74b8f1a41f9e82a3fa52b311\"\u003e\u003ccode\u003ee1428c3\u003c/code\u003e\u003c/a\u003e Add include/exclude encoding filters (\u003ca href=\"https://redirect.github.com/chardet/chardet/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/63e90b5fb6ad0b32ff76351f0d4bee25d64f53a4\"\u003e\u003ccode\u003e63e90b5\u003c/code\u003e\u003c/a\u003e fix: pass --no-binary chardet for pinned versions with --pure\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chardet/chardet/commit/2fe89933d479fc9153520b12390858ceceaa43c6\"\u003e\u003ccode\u003e2fe8993\u003c/code\u003e\u003c/a\u003e fix: handle missing ISO_TO_LANGUAGE in older chardet versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/chardet/chardet/compare/5.2.0...7.2.0\"\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.4 to 3.4.6\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.6\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.5...3.4.6\"\u003e3.4.6\u003c/a\u003e (2026-03-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlattened the logic in \u003ccode\u003echarset_normalizer.md\u003c/code\u003e for higher performance. Removed \u003ccode\u003eeligible(..)\u003c/code\u003e and \u003ccode\u003efeed(...)\u003c/code\u003e\nin favor of \u003ccode\u003efeed_info(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound for mypy[c] to 1.20, for our optimized version.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eUNICODE_RANGES_COMBINED\u003c/code\u003e using Unicode blocks v17.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEdge case where noise difference between two candidates can be almost insignificant. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/672\"\u003e#672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLI \u003ccode\u003e--normalize\u003c/code\u003e writing to wrong path when passing multiple files in. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/702\"\u003e#702\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFreethreaded pre-built wheels now shipped in PyPI starting with 3.14t. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/616\"\u003e#616\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.5\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.4...3.4.5\"\u003e3.4.5\u003c/a\u003e (2026-03-06)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=82\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.19.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd explicit link to lib math in our optimized build. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLogger level not restored correctly for empty byte sequences. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/701\"\u003e#701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeError when passing bytearray to from_bytes. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/703\"\u003e#703\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eApplied safe micro-optimizations in both our noise detector and language detector.\u003c/li\u003e\n\u003cli\u003eRewrote the \u003ccode\u003equery_yes_no\u003c/code\u003e function (inside CLI) to avoid using ambiguous licensed code.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003ecd.py\u003c/code\u003e submodule into mypyc optional compilation to reduce further the performance impact.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003cbr /\u003e\nmypyc changed the usual binary output for the optimized wheel. Beware, especially if using PyInstaller or alike. See \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/714\"\u003ejawah/charset_normalizer#714\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/blockquote\u003e\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.5...3.4.6\"\u003e3.4.6\u003c/a\u003e (2026-03-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlattened the logic in \u003ccode\u003echarset_normalizer.md\u003c/code\u003e for higher performance. Removed \u003ccode\u003eeligible(..)\u003c/code\u003e and \u003ccode\u003efeed(...)\u003c/code\u003e\nin favor of \u003ccode\u003efeed_info(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound for mypy[c] to 1.20, for our optimized version.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eUNICODE_RANGES_COMBINED\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/tektronix/tm_data_types/pull/163","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tektronix%2Ftm_data_types/issues/163","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/163/packages"}},{"old_version":"0.6.0","new_version":"0.6.1","update_type":"patch","path":null,"pr_created_at":"2026-03-18T18:27:02.000Z","version_change":"0.6.0 → 0.6.1","issue":{"uuid":"4097008147","node_id":"PR_kwDOILImnc7LoZDe","number":246,"state":"closed","title":"build(deps): bump the pip-minor-deps group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-06T15:05:54.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-18T18:27:02.000Z","updated_at":"2026-04-06T15:05:55.000Z","time_to_close":1629532,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"pip-minor-deps","update_count":11,"packages":[{"name":"panel","old_version":"1.8.7","new_version":"1.8.10","repository_url":"https://github.com/holoviz/panel"},{"name":"sqlalchemy","old_version":"2.0.46","new_version":"2.0.48","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"psycopg","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/psycopg/psycopg"},{"name":"google-cloud-storage","old_version":"3.9.0","new_version":"3.10.0","repository_url":"https://github.com/googleapis/python-storage"},{"name":"mkdocs-material","old_version":"9.7.1","new_version":"9.7.5","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocs-gen-files","old_version":"0.6.0","new_version":"0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-literate-nav","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/oprypin/mkdocs-literate-nav"},{"name":"mkdocs-section-index","old_version":"0.3.10","new_version":"0.3.11","repository_url":"https://github.com/oprypin/mkdocs-section-index"},{"name":"mike","old_version":"2.1.3","new_version":"2.1.4","repository_url":"https://github.com/jimporter/mike"},{"name":"jupyterlab","old_version":"4.5.4","new_version":"4.5.6","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-minor-deps group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [panel](https://github.com/holoviz/panel) | `1.8.7` | `1.8.10` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.46` | `2.0.48` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.3.2` | `3.3.3` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.9.0` | `3.10.0` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.7.1` | `9.7.5` |\n| [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) | `0.6.0` | `0.6.1` |\n| [mkdocs-literate-nav](https://github.com/oprypin/mkdocs-literate-nav) | `0.6.2` | `0.6.3` |\n| [mkdocs-section-index](https://github.com/oprypin/mkdocs-section-index) | `0.3.10` | `0.3.11` |\n| [mike](https://github.com/jimporter/mike) | `2.1.3` | `2.1.4` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.5.4` | `4.5.6` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n\n\nUpdates `panel` from 1.8.7 to 1.8.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/holoviz/panel/releases\"\u003epanel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.8.10\u003c/h2\u003e\n\u003cp\u003ePanel 1.8.10 focuses on stability improvements across widgets, plotting integrations, and server behavior. It includes fixes for Tabulator serialization, Param widget updates, Plotly and Vega regressions, and several UI issues. This release also improves compatibility with \u003cstrong\u003eBokeh 3.9\u003c/strong\u003e, enhances error reporting when serving apps, and addresses a security issue in \u003ccode\u003epanel.js\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eMany thanks to the contributors to this release including:\n\u003ca href=\"https://github.com/philippjfr\"\u003e\u003ccode\u003e@​philippjfr\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/SuMayaBee\"\u003e\u003ccode\u003e@​SuMayaBee\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/AtharvaJaiswal005\"\u003e\u003ccode\u003e@​AtharvaJaiswal005\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/hoxbro\"\u003e\u003ccode\u003e@​hoxbro\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ghostiee-11\"\u003e\u003ccode\u003e@​ghostiee-11\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/tmoulignier\"\u003e\u003ccode\u003e@​tmoulignier\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003e✨ Enhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove Python error messages displayed when serving apps (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8478\"\u003e#8478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003estate.busy\u003c/code\u003e logic to avoid mismatches in busy state tracking (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8498\"\u003e#8498\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow configuring the Panel CDN with the PANEL_CDN_ROOT environment variable or \u003ccode\u003epn.config.cdn_root\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8512\"\u003e#8512\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent spacebar in \u003ccode\u003eCard\u003c/code\u003e header inputs from toggling collapse (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8442\"\u003e#8442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eDateRangeSlider\u003c/code\u003e incorrectly modifying both values with timezone-aware timestamps (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8455\"\u003e#8455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve slider bar color when \u003ccode\u003eAccordion\u003c/code\u003e panels are collapsed or expanded (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8460\"\u003e#8460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix datetime axis type mismatch in \u003ccode\u003elink_axes\u003c/code\u003e after scroll and plot update (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8468\"\u003e#8468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON serialization errors in \u003ccode\u003eTabulator\u003c/code\u003e when using mixed \u003ccode\u003eNaT\u003c/code\u003e datetime columns (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8491\"\u003e#8491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Param widget values not updating when changed inside their own callback (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8492\"\u003e#8492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing validation in \u003ccode\u003e_imgshape\u003c/code\u003e for image panes (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8485\"\u003e#8485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Vega pane not updating when using inline data (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8495\"\u003e#8495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Plotly regressions introduced in earlier 1.8 releases (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8471\"\u003e#8471\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8476\"\u003e#8476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure all \u003ccode\u003eReactiveESM\u003c/code\u003e children render correctly (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8473\"\u003e#8473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003eCodeEditor\u003c/code\u003e annotations are not overridden (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8505\"\u003e#8505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Modal objects update rendering inline instead of in dialog (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8508\"\u003e#8508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent ValueError when \u003ccode\u003eEditableFloatSlider\u003c/code\u003e input is cleared (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8511\"\u003e#8511\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🔒 Security\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddress XSS and prototype overwrite issues in \u003ccode\u003epanel.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8501\"\u003e#8501\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📦 Compatibility \u0026amp; Dependency Updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd compatibility with \u003cstrong\u003eBokeh 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8475\"\u003e#8475\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📚 Documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecommend using bound function references instead of \u003ccode\u003ewatch=True\u003c/code\u003e in the \u003ccode\u003ebind_component\u003c/code\u003e guide (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8479\"\u003e#8479\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🧪 Tests \u0026amp; Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove test robustness (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8502\"\u003e#8502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JupyterLite CI workflow (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8494\"\u003e#8494\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8496\"\u003e#8496\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.9\u003c/h2\u003e\n\u003cp\u003eMany thanks to \u003ca href=\"https://github.com/philippjfr\"\u003e\u003ccode\u003e@​philippjfr\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/hoxbro\"\u003e\u003ccode\u003e@​hoxbro\u003c/code\u003e\u003c/a\u003e for their contributions.\u003c/p\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOnly serialize ESM model definition if session is already loaded (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8462\"\u003e#8462\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/holoviz/panel/blob/main/CHANGELOG.md\"\u003epanel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.8.10\u003c/h2\u003e\n\u003cp\u003ePanel 1.8.10 focuses on stability improvements across widgets, plotting integrations, and server behavior. It includes fixes for Tabulator serialization, Param widget updates, Plotly and Vega regressions, and several UI issues. This release also improves compatibility with \u003cstrong\u003eBokeh 3.9\u003c/strong\u003e, enhances error reporting when serving apps, and addresses a security issue in \u003ccode\u003epanel.js\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eMany thanks to the contributors to this release including:\n\u003ca href=\"https://github.com/philippjfr\"\u003e\u003ccode\u003e@​philippjfr\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/SumaiyaIslam\"\u003e\u003ccode\u003e@​SumaiyaIslam\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/emunsing\"\u003e\u003ccode\u003e@​emunsing\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/AtharvaJaiswal005\"\u003e\u003ccode\u003e@​AtharvaJaiswal005\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/DevilSpecial\"\u003e\u003ccode\u003e@​DevilSpecial\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/DanielAlanBates\"\u003e\u003ccode\u003e@​DanielAlanBates\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/FlorianVerdonck\"\u003e\u003ccode\u003e@​FlorianVerdonck\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ahuang11\"\u003e\u003ccode\u003e@​ahuang11\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/SimonHeybrock\"\u003e\u003ccode\u003e@​SimonHeybrock\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Coderambling\"\u003e\u003ccode\u003e@​Coderambling\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/MarcSkovMadsen\"\u003e\u003ccode\u003e@​MarcSkovMadsen\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ghostiee-11\"\u003e\u003ccode\u003e@​ghostiee-11\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/tmoulignier\"\u003e\u003ccode\u003e@​tmoulignier\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/aadrita\"\u003e\u003ccode\u003e@​aadrita\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003e✨ Enhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove Python error messages displayed when serving apps (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8478\"\u003e#8478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003estate.busy\u003c/code\u003e logic to avoid mismatches in busy state tracking (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8498\"\u003e#8498\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow configuring the Panel CDN with the PANEL_CDN_ROOT environment variable or \u003ccode\u003epn.config.cdn_root\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8512\"\u003e#8512\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eDateRangeSlider\u003c/code\u003e incorrectly modifying both values with timezone-aware timestamps (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8455\"\u003e#8455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve slider bar color when \u003ccode\u003eAccordion\u003c/code\u003e panels are collapsed or expanded (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8460\"\u003e#8460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix datetime axis type mismatch in \u003ccode\u003elink_axes\u003c/code\u003e after scroll and plot update (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8468\"\u003e#8468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON serialization errors in \u003ccode\u003eTabulator\u003c/code\u003e when using mixed \u003ccode\u003eNaT\u003c/code\u003e datetime columns (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8491\"\u003e#8491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Param widget values not updating when changed inside their own callback (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8492\"\u003e#8492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing validation in \u003ccode\u003e_imgshape\u003c/code\u003e for image panes (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8485\"\u003e#8485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Vega pane not updating when using inline data (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8495\"\u003e#8495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Plotly regressions introduced in earlier 1.8 releases (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8471\"\u003e#8471\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8476\"\u003e#8476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure all \u003ccode\u003eReactiveESM\u003c/code\u003e children render correctly (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8473\"\u003e#8473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🔒 Security\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddress XSS and prototype overwrite issues in \u003ccode\u003epanel.js\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8501\"\u003e#8501\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📦 Compatibility \u0026amp; Dependency Updates\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd compatibility with \u003cstrong\u003eBokeh 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8475\"\u003e#8475\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📚 Documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecommend using bound function references instead of \u003ccode\u003ewatch=True\u003c/code\u003e in the \u003ccode\u003ebind_component\u003c/code\u003e guide (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8479\"\u003e#8479\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🧪 Tests \u0026amp; Maintenance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove test robustness (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8502\"\u003e#8502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JupyterLite CI workflow (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8494\"\u003e#8494\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8496\"\u003e#8496\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.9\u003c/h2\u003e\n\u003cp\u003eMany thanks to \u003ca href=\"https://github.com/philippjfr\"\u003e\u003ccode\u003e@​philippjfr\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/hoxbro\"\u003e\u003ccode\u003e@​hoxbro\u003c/code\u003e\u003c/a\u003e for their contributions.\u003c/p\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOnly serialize ESM model definition if session is already loaded (\u003ca href=\"https://redirect.github.com/holoviz/panel/pull/8462\"\u003e#8462\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/holoviz/panel/commit/dabdb38c0fdba9685fab0bae2d27cfe40da2add6\"\u003e\u003ccode\u003edabdb38\u003c/code\u003e\u003c/a\u003e Bump panel.js to 1.8.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holoviz/panel/commit/dd1a6f4bdd8a81ae389f3b1f617cd01c9d9c5b63\"\u003e\u003ccode\u003edd1a6f4\u003c/code\u003e\u003c/a\u003e Update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holoviz/panel/commit/e6c2916539ea19b450d76271a3768cc071324309\"\u003e\u003ccode\u003ee6c2916\u003c/code\u003e\u003c/a\u003e ci: Update github action versions (\u003ca href=\"https://redirect.github.com/holoviz/panel/issues/8513\"\u003e#8513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holoviz/panel/commit/e94fddf2969da64ebe7d9b53089b8cf57ea24fa7\"\u003e\u003ccode\u003ee94fddf\u003c/code\u003e\u003c/a\u003e Prevent spacebar in Card header inputs from toggling collapse (\u003ca href=\"https://redirect.github.com/holoviz/panel/issues/8442\"\u003e#8442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holoviz/panel/commit/b8a2b2929b91185cf0d5a3d0845ae114bd4cee32\"\u003e\u003ccode\u003eb8a2b29\u003c/code\u003e\u003c/a\u003e Allow making CDN_ROOT configurable (\u003ca href=\"https://redirect.github.com/holoviz/panel/issues/8512\"\u003e#8512\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holoviz/panel/commit/40b1fe6c2616c209ecf2a05bf4b67a94045cf081\"\u003e\u003ccode\u003e40b1fe6\u003c/code\u003e\u003c/a\u003e Fix Modal objects update rendering inline instead of in dialog (\u003ca href=\"https://redirect.github.com/holoviz/panel/issues/8508\"\u003e#8508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holoviz/panel/commit/9a6600911f9303bc77c2365ce7ce21f15209ee40\"\u003e\u003ccode\u003e9a66009\u003c/code\u003e\u003c/a\u003e fix: prevent ValueError when EditableFloatSlider input is cleared (\u003ca href=\"https://redirect.github.com/holoviz/panel/issues/8511\"\u003e#8511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holoviz/panel/commit/2b50a33082facf6fa5292a603e1e2e2424f24ae5\"\u003e\u003ccode\u003e2b50a33\u003c/code\u003e\u003c/a\u003e Fix CodeEditor annotations overwritten by Ace worker (\u003ca href=\"https://redirect.github.com/holoviz/panel/issues/8505\"\u003e#8505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holoviz/panel/commit/f6dc8a722cfb346a232ca1737d65db719a7d3209\"\u003e\u003ccode\u003ef6dc8a7\u003c/code\u003e\u003c/a\u003e Bump panel.js to 1.8.10-rc.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holoviz/panel/commit/cddfd311f30aae192a158ab62e96b74372b368a0\"\u003e\u003ccode\u003ecddfd31\u003c/code\u003e\u003c/a\u003e Add 1.8.10 changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/holoviz/panel/compare/v1.8.7...v1.8.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.46 to 2.0.48\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.48\u003c/h1\u003e\n\u003cp\u003eReleased: March 2, 2026\u003c/p\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [bug]\u003c/strong\u003e Fixed a critical issue in \u003ccode\u003eEngine\u003c/code\u003e where connections created in\nconjunction with the \u003ccode\u003eDialectEvents.do_connect()\u003c/code\u003e event listeners\nwould receive shared, mutable collections for the connection arguments,\nleading to a variety of potential issues including unlimited growth of the\nargument list as well as elements within the parameter dictionary being\nshared among concurrent connection calls.  In particular this could impact\ndo_connect routines making use of complex mutable authentication\nstructures.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13144\"\u003e#13144\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.0.47\u003c/h1\u003e\n\u003cp\u003eReleased: February 24, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue when using ORM mappings with Python 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e feature\nthat no longer requires \u0026quot;future annotations\u0026quot;, where the ORM's introspection\nof the \u003ccode\u003e__init__\u003c/code\u003e method of mapped classes would fail if non-present\nidentifiers in annotations were present.  The vendored \u003ccode\u003egetfullargspec()\u003c/code\u003e\nmethod has been amended to use \u003ccode\u003eFormat.FORWARDREF\u003c/code\u003e under Python 3.14 to\nprevent resolution of names that aren't present.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13104\"\u003e#13104\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [usecase]\u003c/strong\u003e The connection object returned by \u003ccode\u003e_engine.Engine.raw_connection()\u003c/code\u003e\nnow supports the context manager protocol, automatically returning the\nconnection to the pool when exiting the context.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13116\"\u003e#13116\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed an issue in the PostgreSQL dialect where foreign key constraint\nreflection would incorrectly swap or fail to capture \u003ccode\u003eonupdate\u003c/code\u003e and\n\u003ccode\u003eondelete\u003c/code\u003e values when these clauses appeared in a different order than\nexpected in the constraint definition. This issue primarily affected\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg` from 3.3.2 to 3.3.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.3\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRetain \u003ccode\u003eError.pgconn\u003c/code\u003e when raising a single exception for multiple connection\nattempt errors (:ticket:\u003ccode\u003e[#1246](https://github.com/psycopg/psycopg/issues/1246)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eReturn a proper error when server sends \u003ccode\u003eErrorResponse\u003c/code\u003e for a \u003ccode\u003eSync\u003c/code\u003e after\na \u003ccode\u003eParse\u003c/code\u003e (:ticket:\u003ccode\u003e[#1260](https://github.com/psycopg/psycopg/issues/1260)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePsycopg 3.3.2\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix race condition in adapters at startup (:ticket:\u003ccode\u003e[#1230](https://github.com/psycopg/psycopg/issues/1230)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003ePsycopg 3.3.1\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix iteration on server-side cursors (:ticket:\u003ccode\u003e[#1226](https://github.com/psycopg/psycopg/issues/1226)\u003c/code\u003e).\u003c/p\u003e\n\u003ch2\u003ePsycopg 3.3.0\u003c/h2\u003e\n\u003cp\u003e.. rubric:: New top-level features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etemplate strings queries \\\u0026lt;template-strings\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1054](https://github.com/psycopg/psycopg/issues/1054)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eMore flexible :ref:\u003ccode\u003ecomposite adaptation\u0026lt;adapt-composite\u0026gt;\u003c/code\u003e: it is now possible\nto adapt Python objects to PostgreSQL composites and back even if they are not\nsequences or if they take keyword arguments (:ticket:\u003ccode\u003e[#932](https://github.com/psycopg/psycopg/issues/932)\u003c/code\u003e, :ticket:\u003ccode\u003e[#1202](https://github.com/psycopg/psycopg/issues/1202)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eCursors are now iterators_, not just iterables_. This means you can call\n\u003ccode\u003enext\u003c/code\u003e\\ \u003ccode\u003e(cur)\u003c/code\u003e or \u003ccode\u003eanext\u003c/code\u003e\\ \u003ccode\u003e(cur)\u003c/code\u003e, which is useful as a :ref:\u003ccode\u003etype-safe expression \u0026lt;typing-fetchone\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1064](https://github.com/psycopg/psycopg/issues/1064)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eCursor.set_result()\u003c/code\u003e and \u003ccode\u003eCursor.results()\u003c/code\u003e to move across the result\nsets of queries executed though \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e or\n\u003ccode\u003e~Cursor.execute()\u003c/code\u003e with multiple statements (:tickets:\u003ccode\u003e[#1080](https://github.com/psycopg/psycopg/issues/1080), [#1170](https://github.com/psycopg/psycopg/issues/1170)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etransaction-status\u003c/code\u003e to report the status during and after a\n\u003ccode\u003e~Connection.transaction()\u003c/code\u003e block (:ticket:\u003ccode\u003e[#969](https://github.com/psycopg/psycopg/issues/969)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/1a8f65a371da3c691111cd4a81141f2cb698eafa\"\u003e\u003ccode\u003e1a8f65a\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/db3c43584320ab5d97e49378e5c9dc09a560b031\"\u003e\u003ccode\u003edb3c435\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1260\"\u003e#1260\u003c/a\u003e from ggevay/sync-error-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/0237586c415ece15102742f5941874c29fb1221c\"\u003e\u003ccode\u003e0237586\u003c/code\u003e\u003c/a\u003e Fix ValueError when server sends ErrorResponse during Sync after Parse\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/cb97ef7063520cb8a0cb5236bb9791f8dc4cc454\"\u003e\u003ccode\u003ecb97ef7\u003c/code\u003e\u003c/a\u003e docs: fix typos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/09c89180f94606dc70475ed863e135f021a11038\"\u003e\u003ccode\u003e09c8918\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1256\"\u003e#1256\u003c/a\u003e from veeceey/fix/tstrings-error-msg-and-docs-improve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/9e74d9646cc3fcbb9d8940182dcdb41119c3fda7\"\u003e\u003ccode\u003e9e74d96\u003c/code\u003e\u003c/a\u003e fix: fix error message incorrectly generated by Claude AI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/0db9d8bb76c48e70dffd48776406fd3ffdc89b5a\"\u003e\u003ccode\u003e0db9d8b\u003c/code\u003e\u003c/a\u003e fix: correct typo in tstrings error message and fix sql.rst docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/86a0e1b2bbf30c564c59bf3497d499e2f220ce0f\"\u003e\u003ccode\u003e86a0e1b\u003c/code\u003e\u003c/a\u003e chore(deps): bump pypa/cibuildwheel in the actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/f5d90fa2a7836c1268c1d43d0d77c431434ad191\"\u003e\u003ccode\u003ef5d90fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1233\"\u003e#1233\u003c/a\u003e from lysnikolaou/pgconn-critical-section\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/d7dc6c7cacc2832fffa0d7e607b5fc171424571d\"\u003e\u003ccode\u003ed7dc6c7\u003c/code\u003e\u003c/a\u003e Merge critical section and nogil blocks into one context manager\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg/compare/3.3.2...3.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-storage` from 3.9.0 to 3.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-storage/releases\"\u003egoogle-cloud-storage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-storage: v3.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.9.0...v3.10.0\"\u003e3.10.0\u003c/a\u003e (2026-03-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Bucket Encryption Enforcement] add support for bucket encryption enforcement config (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1742\"\u003e#1742\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/2a6e8b00e4e6ff57460373f8e628fd363be47811\"\u003e2a6e8b00e4e6ff57460373f8e628fd363be47811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerf Improvments\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Rapid Buckets Reads] Use raw proto access for read resumption strategy (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1764\"\u003e#1764\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/14cfd61ce35365a409650981239ef742cdf375fb\"\u003e14cfd61ce35365a409650981239ef742cdf375fb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets Benchmarks] init mp pool \u0026amp; grpc client once, use os.sched_setaffinity (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1751\"\u003e#1751\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/a9eb82c1b9b3c6ae5717d47b76284ed0deb5f769\"\u003ea9eb82c1b9b3c6ae5717d47b76284ed0deb5f769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets Writes] don't flush at every append, results in bad perf (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1746\"\u003e#1746\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/ab62d728ac7d7be3c4fe9a99d72e35ead310805a\"\u003eab62d728ac7d7be3c4fe9a99d72e35ead310805a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Windows] skip downloading blobs whose name contain \u003ccode\u003e\u0026quot;:\u0026quot; \u003c/code\u003e eg: \u003ccode\u003eC:\u003c/code\u003e \u003ccode\u003eD:\u003c/code\u003e etc when application runs in Windows. (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1774\"\u003e#1774\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/558198823ed51918db9c0137715d1e7f5b593975\"\u003e558198823ed51918db9c0137715d1e7f5b593975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Path Traversal] Prevent path traversal in \u003ccode\u003edownload_many_to_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1768\"\u003e#1768\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a\"\u003e700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets] pass token correctly, '\u0026amp;' instead of ',' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1756\"\u003e#1756\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/d8dd1e074d2431de9b45e0103181dce749a447a0\"\u003ed8dd1e074d2431de9b45e0103181dce749a447a0\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/googleapis/python-storage/blob/main/CHANGELOG.md\"\u003egoogle-cloud-storage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.9.0...v3.10.0\"\u003e3.10.0\u003c/a\u003e (2026-03-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Bucket Encryption Enforcement] add support for bucket encryption enforcement config (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1742\"\u003e#1742\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/2a6e8b00e4e6ff57460373f8e628fd363be47811\"\u003e2a6e8b00e4e6ff57460373f8e628fd363be47811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerf Improvments\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Rapid Buckets Reads] Use raw proto access for read resumption strategy (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1764\"\u003e#1764\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/14cfd61ce35365a409650981239ef742cdf375fb\"\u003e14cfd61ce35365a409650981239ef742cdf375fb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets Benchmarks] init mp pool \u0026amp; grpc client once, use os.sched_setaffinity (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1751\"\u003e#1751\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/a9eb82c1b9b3c6ae5717d47b76284ed0deb5f769\"\u003ea9eb82c1b9b3c6ae5717d47b76284ed0deb5f769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets Writes] don't flush at every append, results in bad perf (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1746\"\u003e#1746\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/ab62d728ac7d7be3c4fe9a99d72e35ead310805a\"\u003eab62d728ac7d7be3c4fe9a99d72e35ead310805a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Windows] skip downloading blobs whose name contain \u003ccode\u003e\u0026quot;:\u0026quot; \u003c/code\u003e eg: \u003ccode\u003eC:\u003c/code\u003e \u003ccode\u003eD:\u003c/code\u003e etc when application runs in Windows. (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1774\"\u003e#1774\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/558198823ed51918db9c0137715d1e7f5b593975\"\u003e558198823ed51918db9c0137715d1e7f5b593975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Path Traversal] Prevent path traversal in \u003ccode\u003edownload_many_to_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1768\"\u003e#1768\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a\"\u003e700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Rapid Buckets] pass token correctly, '\u0026amp;' instead of ',' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1756\"\u003e#1756\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/d8dd1e074d2431de9b45e0103181dce749a447a0\"\u003ed8dd1e074d2431de9b45e0103181dce749a447a0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/8b7fbde10c80337c4b4a2f6c8a860e28371a770b\"\u003e\u003ccode\u003e8b7fbde\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260318T145147Z (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1776\"\u003e#1776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/21bb20f4f3fe428388a9339841c68b2dcad029af\"\u003e\u003ccode\u003e21bb20f\u003c/code\u003e\u003c/a\u003e feat(samples): add argparse and clarify traversal support in download_many sn...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/558198823ed51918db9c0137715d1e7f5b593975\"\u003e\u003ccode\u003e5581988\u003c/code\u003e\u003c/a\u003e fix(storage): skip downloading blobs whose name contain \u003ccode\u003e\u0026quot;:\u0026quot; \u003c/code\u003e eg: \u003ccode\u003eC:\u003c/code\u003e \u003ccode\u003eD:\u003c/code\u003e ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/c5735c377d31e9131a3c507098ef659e8112d62e\"\u003e\u003ccode\u003ec5735c3\u003c/code\u003e\u003c/a\u003e feat(storage): support returning skipped items as UserWarning in download_man...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/14cfd61ce35365a409650981239ef742cdf375fb\"\u003e\u003ccode\u003e14cfd61\u003c/code\u003e\u003c/a\u003e feat(storage): Use raw proto access for read resumption strategy (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1764\"\u003e#1764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/2a6e8b00e4e6ff57460373f8e628fd363be47811\"\u003e\u003ccode\u003e2a6e8b0\u003c/code\u003e\u003c/a\u003e feat: add support for bucket encryption enforcement config (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1742\"\u003e#1742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/141f7ac1e3448d894eee9984b39ad8535a2823cf\"\u003e\u003ccode\u003e141f7ac\u003c/code\u003e\u003c/a\u003e chore: skip hmac tests until b/493225655 is fixed (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1771\"\u003e#1771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/35b39b6460f4d1d7a4cd50bab38c4ab2a2dcda4a\"\u003e\u003ccode\u003e35b39b6\u003c/code\u003e\u003c/a\u003e chore: don't use mtls in gcb until b/492452834 is fixed (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1769\"\u003e#1769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/eee4b3c0b4a72155e7fe2c9232dbcef33b817fd6\"\u003e\u003ccode\u003eeee4b3c\u003c/code\u003e\u003c/a\u003e chore: clean up release please configuration files (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1667\"\u003e#1667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a\"\u003e\u003ccode\u003e700fec3\u003c/code\u003e\u003c/a\u003e fix(transfer_manager): Prevent path traversal in \u003ccode\u003edownload_many_to_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1768\"\u003e#1768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.9.0...v3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.7.1 to 9.7.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.5\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.4\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed environment (recommended by \u003ca href=\"https://github.com/caveeroo\"\u003e\u003ccode\u003e@​caveeroo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.2\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to \u003ccode\u003emkdocs build\u003c/code\u003e about impending MkDocs 2.0 incompatibility (doesn't affect strict mode)\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/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.5 (2026-03-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.4 (2026-03-03)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed environment\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.3 (2026-02-24)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8567\"\u003e#8567\u003c/a\u003e: Print MkDocs 2.0 incompatibility warning to stderr\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.2 (2026-02-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to 'mkdocs build' about impending MkDocs 2.0 incompatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pinned blog posts and author profiles\u003c/li\u003e\n\u003cli\u003eAdded support for customizing pagination for blog index pages\u003c/li\u003e\n\u003cli\u003eAdded support for customizing blog category sort order\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/00b9933e5821fd852700268767d4fd53ae1ce1cb\"\u003e\u003ccode\u003e00b9933\u003c/code\u003e\u003c/a\u003e Prepare 9.7.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/37683d12c9cd62309aa917237741ee0886709b7c\"\u003e\u003ccode\u003e37683d1\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/199e31598055d5d6ea538618804c7558f5d81047\"\u003e\u003ccode\u003e199e315\u003c/code\u003e\u003c/a\u003e Updated warning message to clarify relation to MkDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/10258334eb13545e6d708cf121c3867bfbdb6017\"\u003e\u003ccode\u003e1025833\u003c/code\u003e\u003c/a\u003e Limited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/1532f523f6c650c9d6fd16229ee8bec0759b4151\"\u003e\u003ccode\u003e1532f52\u003c/code\u003e\u003c/a\u003e Added update log to blog post\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/d0c8b2862a966f5f268d4a4c35bb4fcfccebb9b1\"\u003e\u003ccode\u003ed0c8b28\u003c/code\u003e\u003c/a\u003e Updated dependencies to fix vulnerabilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/71d48699a0e2bef231e796818c4dc20b230a5f45\"\u003e\u003ccode\u003e71d4869\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/0d30a135a316271d94538e9b0a441f543f56460b\"\u003e\u003ccode\u003e0d30a13\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/8b55995364388ce5ca7ff2c0ca462e24510b7e63\"\u003e\u003ccode\u003e8b55995\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/66d413f8885d68157e7e6ca615f3e6bee0830795\"\u003e\u003ccode\u003e66d413f\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.7.1...9.7.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.6.0 to 0.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-literate-nav` from 0.6.2 to 0.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/releases\"\u003emkdocs-literate-nav's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/pull/39\"\u003eoprypin/mkdocs-literate-nav#39\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ehttps://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.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/oprypin/mkdocs-literate-nav/commit/b91268c263f61e38a7e27f77ccf38ec287e0c0b5\"\u003e\u003ccode\u003eb91268c\u003c/code\u003e\u003c/a\u003e v0.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/cee9ec49a1523036081378a39bda9fa014432526\"\u003e\u003ccode\u003ecee9ec4\u003c/code\u003e\u003c/a\u003e Exclude properdocs when testing minimal dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/ea523f5864f59fb7939f84cd4400df67280ad52c\"\u003e\u003ccode\u003eea523f5\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/258b15a15a3e25cedc816d0a5a971acfdb86541e\"\u003e\u003ccode\u003e258b15a\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-section-index` from 0.3.10 to 0.3.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/releases\"\u003emkdocs-section-index's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/pull/27\"\u003eoprypin/mkdocs-section-index#27\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ehttps://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\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/oprypin/mkdocs-section-index/commit/a8235f6f8eb5927b966a3aaea8afe5fa161ecece\"\u003e\u003ccode\u003ea8235f6\u003c/code\u003e\u003c/a\u003e v0.3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/ac66dfda53834d79ce8e0af6f340dddd7cde2bf9\"\u003e\u003ccode\u003eac66dfd\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/issues/27\"\u003e#27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/32866cd83993ee3eefbac0fcc13911692796d8f6\"\u003e\u003ccode\u003e32866cd\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mike` from 2.1.3 to 2.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jimporter/mike/releases\"\u003emike's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.4\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse built-in \u003ccode\u003eimportlib\u003c/code\u003e in Python 3.10 and greater\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/jimporter/mike/blob/master/CHANGES.md\"\u003emike's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.4 (2026-03-07)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse built-in \u003ccode\u003eimportlib\u003c/code\u003e in Python 3.10 and greater\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/fd2c5dc94acb3fce6b6acad643bae821ce59f323\"\u003e\u003ccode\u003efd2c5dc\u003c/code\u003e\u003c/a\u003e Update version to 2.1.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/6bad2056410c2d4e3fc58f96112d1b620db3b25b\"\u003e\u003ccode\u003e6bad205\u003c/code\u003e\u003c/a\u003e Update copyright year\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/9e5f8769f29b0b2fd638770590beba2876e0c42d\"\u003e\u003ccode\u003e9e5f876\u003c/code\u003e\u003c/a\u003e Remove deprecated license classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/80c47ab27eda456bbee0c883723a57b7a183e478\"\u003e\u003ccode\u003e80c47ab\u003c/code\u003e\u003c/a\u003e Be more consistent with newlines in CHANGES.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/11d4160eea7d356042524628533fbc9bb534d1d3\"\u003e\u003ccode\u003e11d4160\u003c/code\u003e\u003c/a\u003e Use built-in \u003ccode\u003eimportlib\u003c/code\u003e in Python 3.10 and greater\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/bdda184d22b9207288ca32a3650d19e033658ff7\"\u003e\u003ccode\u003ebdda184\u003c/code\u003e\u003c/a\u003e Improve selection of unit test suites on command line\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/d8a9b491355a648cb9417e7256dde42743042882\"\u003e\u003ccode\u003ed8a9b49\u003c/code\u003e\u003c/a\u003e Add CI for Python 3.14 and remove  old workarounds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/97deaed465a424646d163147941b358f9201e9d0\"\u003e\u003ccode\u003e97deaed\u003c/code\u003e\u003c/a\u003e Update copyright\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/64298e2a867d6db3a49a0d0c6126cea4e3946f7d\"\u003e\u003ccode\u003e64298e2\u003c/code\u003e\u003c/a\u003e Update Python version for linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/e6f523a879c4ee80dad2ae38ead6f1ac3b967055\"\u003e\u003ccode\u003ee6f523a\u003c/code\u003e\u003c/a\u003e Test Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jimporter/mike/compare/v2.1.3...v2.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jupyterlab` from 4.5.4 to 4.5.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jupyterlab/jupyterlab/releases\"\u003ejupyterlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.5.6\u003c/h2\u003e\n\u003ch2\u003e4.5.6\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/v4.5.5...a6dda8829b2d6b670de634081d26c1a39be145c4\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplace scrollback implementation with scroll anchoring outside of \u003ccode\u003efull\u003c/code\u003e windowing mode \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18522\"\u003e#18522\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHarmonize translation wrappers in Python files to use \u003ccode\u003egettext\u003c/code\u003e methods \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18597\"\u003e#18597\u003c/a\u003e (\u003ca href=\"https://github.com/tmetzl\"\u003e\u003ccode\u003e@​tmetzl\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unimplemented \u003ccode\u003efilebrowser:search\u003c/code\u003e command \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18593\"\u003e#18593\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix status bar focus outlines \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18585\"\u003e#18585\u003c/a\u003e (\u003ca href=\"https://github.com/IsabelParedes\"\u003e\u003ccode\u003e@​IsabelParedes\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efilebrowser:create-new-file\u003c/code\u003e context menu selector \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18588\"\u003e#18588\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix single-character code blocks rendering as empty \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18572\"\u003e#18572\u003c/a\u003e (\u003ca href=\"https://github.com/soniya-malviy\"\u003e\u003ccode\u003e@​soniya-malviy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003ecode\u003c/code\u003e input in \u003ccode\u003eCodeConsole\u003c/code\u003e when configured \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18554\"\u003e#18554\u003c/a\u003e (\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate benchmark snapshots even if base snapshots require changes \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18549\"\u003e#18549\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2026-02-23\u0026amp;to=2026-03-11\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aagriyakhetarpal+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/IsabelParedes\"\u003e\u003ccode\u003e@​IsabelParedes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AIsabelParedes+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajtpio+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/soniya-malviy\"\u003e\u003ccode\u003e@​soniya-malviy\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Asoniya-malviy+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/tmetzl\"\u003e\u003ccode\u003e@​tmetzl\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Atmetzl+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003ev4.5.5\u003c/h2\u003e\n\u003ch2\u003e4.5.5\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/v4.5.4...4a223c0dbe53f47f03cdff3573fd7e9ccbb2605b\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix theme settings broken in non-English locales \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18530\"\u003e#18530\u003c/a\u003e (\u003ca href=\"https://github.com/apoorvdarshan\"\u003e\u003ccode\u003e@​apoorvdarshan\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix comms subshell resource management on disposal and when changing settings \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18531\"\u003e#18531\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003e@codemirror/view\u003c/code\u003e, fixing slow selection when line wrapping is enabled \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18479\"\u003e#18479\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly turn off overflow anchor when windowing is active \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18503\"\u003e#18503\u003c/a\u003e (\u003ca href=\"https://github.com/jasongrout\"\u003e\u003ccode\u003e@​jasongrout\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix table of contents navigation for Markdown files \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18411\"\u003e#18411\u003c/a\u003e (\u003ca href=\"https://github.com/itsmevichu\"\u003e\u003ccode\u003e@​itsmevichu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to marked 17.0.2 and mermaid 11.12.3 \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18532\"\u003e#18532\u003c/a\u003e (\u003ca href=\"https://github.com/bollwyvl\"\u003e\u003ccode\u003e@​bollwyvl\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/e514705afbea2a1096fa2ffe48489c195ff1a4d2\"\u003e\u003ccode\u003ee514705\u003c/code\u003e\u003c/a\u003e [ci skip] Publish 4.5.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/a6dda8829b2d6b670de634081d26c1a39be145c4\"\u003e\u003ccode\u003ea6dda88\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18522\"\u003e#18522\u003c/a\u003e on branch 4.5.x (Replace scrollback implementation with sc...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/4a28719c1701ccfa31ab282da38a49159cbcb82e\"\u003e\u003ccode\u003e4a28719\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18597\"\u003e#18597\u003c/a\u003e on branch 4.5.x (Harmonize translation wrappers in Python ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/1714c4ab61d14f4cd1a89b726336a9e490170fd6\"\u003e\u003ccode\u003e1714c4a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18593\"\u003e#18593\u003c/a\u003e on branch 4.5.x (Remove unimplemented \u003ccode\u003efilebrowser:search\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/3624bbea0ccc6657aacc339da1550aa3d3c8c790\"\u003e\u003ccode\u003e3624bbe\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18585\"\u003e#18585\u003c/a\u003e on branch 4.5.x (Fix status bar focus outlines) (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18590\"\u003e#18590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/bf99d9d1e9dfb459092d85a7cf8e29fe8404d283\"\u003e\u003ccode\u003ebf99d9d\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18588\"\u003e#18588\u003c/a\u003e on branch 4.5.x (Fix \u003ccode\u003efilebrowser:create-new-file\u003c/code\u003e context...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/5b6dee951eee70f8806ef4a18c6a4e20c0cf5778\"\u003e\u003ccode\u003e5b6dee9\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18572\"\u003e#18572\u003c/a\u003e on branch 4.5.x (Fix single-character code blocks renderin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/da80d67c2805d10708a1914628c00ee983d57793\"\u003e\u003ccode\u003eda80d67\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18554\"\u003e#18554\u003c/a\u003e on branch 4.5.x (Hide \u003ccode\u003ecode\u003c/code\u003e input in \u003ccode\u003eCodeConsole\u003c/code\u003e when c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/5267a8c4f68366155f1e44e3e7a14c8c9d850076\"\u003e\u003ccode\u003e5267a8c\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18549\"\u003e#18549\u003c/a\u003e on branch 4.5.x (Update benchmark snapshots even if base s...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/72d29f47eb557c5ee9986a24ac39cc411e6f9ed6\"\u003e\u003ccode\u003e72d29f4\u003c/code\u003e\u003c/a\u003e [ci skip] Publish 4.5.5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/@jupyterlab/lsp@4.5.4...@jupyterlab/lsp@4.5.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-mock` from 3.14.0 to 3.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-mock/releases\"\u003epytest-mock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.15.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-16\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/529\"\u003e#529\u003c/a\u003e: Fixed \u003ccode\u003eitertools._tee object has no attribute error\u003c/code\u003e -- now \u003ccode\u003eduplicate_iterators=True\u003c/code\u003e must be passed to \u003ccode\u003emocker.spy\u003c/code\u003e to duplicate iterators.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.15.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-04\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 (EOL) is no longer supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/pull/524\"\u003e#524\u003c/a\u003e: Added \u003ccode\u003espy_return_iter\u003c/code\u003e to \u003ccode\u003emocker.spy\u003c/code\u003e, which contains a duplicate of the return value of the spied method if it is an \u003ccode\u003eIterator\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.14.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/pull/503\"\u003e#503\u003c/a\u003e: Python 3.14 is now officially supported.\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/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst\"\u003epytest-mock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.15.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-16\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#529](https://github.com/pytest-dev/pytest-mock/issues/529) \u0026lt;https://github.com/pytest-dev/pytest-mock/issues/529\u0026gt;\u003c/code\u003e_: Fixed \u003ccode\u003eitertools._tee object has no attribute error\u003c/code\u003e -- now \u003ccode\u003eduplicate_iterators=True\u003c/code\u003e must be passed to \u003ccode\u003emocker.spy\u003c/code\u003e to duplicate iterators.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.15.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-04\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 (EOL) is no longer supported.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#524](https://github.com/pytest-dev/pytest-mock/issues/524) \u0026lt;https://github.com/pytest-dev/pytest-mock/pull/524\u0026gt;\u003c/code\u003e_: Added \u003ccode\u003espy_return_iter\u003c/code\u003e to \u003ccode\u003emocker.spy\u003c/code\u003e, which contains a duplicate of the return value of the spied method if it is an \u003ccode\u003eIterator\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.14.1 (2025-05-26)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#503](https://github.com/pytest-dev/pytest-mock/issues/503) \u0026lt;https://github.com/pytest-dev/pytest-mock/pull/503\u0026gt;\u003c/code\u003e_: Python 3.14 is now officially supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-mock/commit/e1b5c62a38c5a05cae614aef3847f240ba50d269\"\u003e\u003ccode\u003ee1b5c62\u003c/code\u003e\u003c/a\u003e Release 3.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/184eb190d6be417f5f33727bcbc9704909479498\"\u003e\u003ccode\u003e184eb19\u003c/code\u003e\u003c/a\u003e Set \u003ccode\u003espy_return_iter\u003c/code\u003e only when explicitly requested (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/537\"\u003e#537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/4fa0088a0aa85eefb1313bd97adf43889bf1f647\"\u003e\u003ccode\u003e4fa0088\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/f5aff33ce71ed4620acc43dc41cb3b198bcf4cb0\"\u003e\u003ccode\u003ef5aff33\u003c/code\u003e\u003c/a\u003e Fix test failure with pytest 8+ and verbose mode (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/535\"\u003e#535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/adc41873c9d6aa69b87e3f108c93a29c847869aa\"\u003e\u003ccode\u003eadc4187\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/95ad5700609aae73c6f767b8cc2ccfb2483e0f5c\"\u003e\u003ccode\u003e95ad570\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/e696bf02c199b1f7d0c48adb450f40e5a75b699a\"\u003e\u003ccode\u003ee696bf0\u003c/code\u003e\u003c/a\u003e Fix standalone mock support (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/5b29b03ce9581cfcd867dd6c04a970fb2c861291\"\u003e\u003ccode\u003e5b29b03\u003c/code\u003e\u003c/a\u003e Fix gen-release-notes script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/7d22ef4e560351832e60687d8bd15ebe2785ff3b\"\u003e\u003ccode\u003e7d22ef4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/528\"\u003e#528\u003c/a\u003e from pytest-dev/release-3.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/90b29f89e2086c139a7b4fea89202faa192ee5a9\"\u003e\u003ccode\u003e90b29f8\u003c/code\u003e\u003c/a\u003e Update CHANGELOG for 3.15.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-mock/compare/v3.14.0...v3.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/Michele-Alberti/data-lunch/pull/246","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Michele-Alberti%2Fdata-lunch/issues/246","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/246/packages"}},{"old_version":"0.6.0","new_version":"0.6.1","update_type":"patch","path":null,"pr_created_at":"2026-03-17T10:35:09.000Z","version_change":"0.6.0 → 0.6.1","issue":{"uuid":"4087649545","node_id":"PR_kwDOM9ltoc7LLnLn","number":600,"state":"closed","title":"chore(deps-dev): bump the python-dependencies group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-03-24T10:31:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-17T10:35:09.000Z","updated_at":"2026-03-24T10:31:43.000Z","time_to_close":604592,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): bump","group_name":"python-dependencies","update_count":10,"packages":[{"name":"pytest-celery","old_version":"1.2.1","new_version":"1.3.0","repository_url":"https://github.com/celery/pytest-celery"},{"name":"ruff","old_version":"0.15.2","new_version":"0.15.6","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mkdocs-material","old_version":"9.7.2","new_version":"9.7.5","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocs-gen-files","old_version":"0.6.0","new_version":"0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-section-index","old_version":"0.3.10","new_version":"0.3.11","repository_url":"https://github.com/oprypin/mkdocs-section-index"},{"name":"mkdocs-literate-nav","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/oprypin/mkdocs-literate-nav"},{"name":"jupyterlab","old_version":"4.5.5","new_version":"4.5.6","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"notebook","old_version":"7.5.3","new_version":"7.5.5","repository_url":"https://github.com/jupyter/notebook"},{"name":"celery-types","old_version":"0.24.0","new_version":"0.26.0","repository_url":"https://github.com/sbdchd/celery-types"},{"name":"types-tqdm","old_version":"4.67.3.20260205","new_version":"4.67.3.20260303","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest-celery](https://github.com/celery/pytest-celery) | `1.2.1` | `1.3.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.2` | `0.15.6` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.7.2` | `9.7.5` |\n| [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) | `0.6.0` | `0.6.1` |\n| [mkdocs-section-index](https://github.com/oprypin/mkdocs-section-index) | `0.3.10` | `0.3.11` |\n| [mkdocs-literate-nav](https://github.com/oprypin/mkdocs-literate-nav) | `0.6.2` | `0.6.3` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.5.5` | `4.5.6` |\n| [notebook](https://github.com/jupyter/notebook) | `7.5.3` | `7.5.5` |\n| [celery-types](https://github.com/sbdchd/celery-types) | `0.24.0` | `0.26.0` |\n| [types-tqdm](https://github.com/typeshed-internal/stub_uploader) | `4.67.3.20260205` | `4.67.3.20260303` |\n\n\nUpdates `pytest-celery` from 1.2.1 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/pytest-celery/releases\"\u003epytest-celery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eKey Highlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDropped Python 3.8 support.\u003c/li\u003e\n\u003cli\u003eAdded Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eReverted \u003ca href=\"https://pypi.org/project/pycurl/\"\u003epycurl\u003c/a\u003e removal to match celery/kombu v5.6 SQS transport.\u003c/li\u003e\n\u003cli\u003eMade pytest-celery package install configurable in worker Dockerfile.\u003c/li\u003e\n\u003cli\u003eFixed type annotations in \u003ccode\u003eCeleryTestCluster\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setuptools from dependencies by \u003ca href=\"https://github.com/dotlambda\"\u003e\u003ccode\u003e@​dotlambda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/464\"\u003ecelery/pytest-celery#464\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShift Python versions (-3.8, +3.14) by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/468\"\u003ecelery/pytest-celery#468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBumping Poetry from v1.8.4 -\u0026gt; v2.2.1 inc. dependencies (\u003ccode\u003epoetry update --with test,dev,ci,docs\u003c/code\u003e) by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/469\"\u003ecelery/pytest-celery#469\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInstall local source in the examples by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/458\"\u003ecelery/pytest-celery#458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse Poetry 1.8.4 in ReadTheDocs by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/470\"\u003ecelery/pytest-celery#470\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemoved --dist=loadscope by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/473\"\u003ecelery/pytest-celery#473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert pycurl removal to match celery/kombu v5.6 SQS transport by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/474\"\u003ecelery/pytest-celery#474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake pytest-celery package install configurable in worker Dockerfile by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/475\"\u003ecelery/pytest-celery#475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(typing): Fix *nodes type annotations in CeleryTestCluster by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/476\"\u003ecelery/pytest-celery#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v1.3.0 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/477\"\u003ecelery/pytest-celery#477\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/dotlambda\"\u003e\u003ccode\u003e@​dotlambda\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/pytest-celery/pull/464\"\u003ecelery/pytest-celery#464\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/pytest-celery/compare/v1.2.1...v1.3.0\"\u003ehttps://github.com/celery/pytest-celery/compare/v1.2.1...v1.3.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/celery/pytest-celery/blob/main/Changelog.rst\"\u003epytest-celery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.3.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2 March, 2026\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003ch1\u003eWhat's Changed\u003c/h1\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped Python 3.8 support.\u003c/li\u003e\n\u003cli\u003eAdded Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eReverted :pypi:\u003ccode\u003epycurl\u003c/code\u003e removal to match celery/kombu v5.6 SQS transport.\u003c/li\u003e\n\u003cli\u003eMade pytest-celery package install configurable in worker Dockerfile.\u003c/li\u003e\n\u003cli\u003eFixed type annotations in \u003ccode\u003eCeleryTestCluster\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eremove setuptools from dependencies (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/464\"\u003e#464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eShift Python versions (-3.8, +3.14) (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumping Poetry from v1.8.4 -\u0026gt; v2.2.1 inc. dependencies (\u003ccode\u003epoetry update --with test,dev,ci,docs\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/469\"\u003e#469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInstall local source in the examples (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/458\"\u003e#458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse Poetry 1.8.4 in ReadTheDocs (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/470\"\u003e#470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved --dist=loadscope (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/473\"\u003e#473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert pycurl removal to match celery/kombu v5.6 SQS transport (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake pytest-celery package install configurable in worker Dockerfile (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/475\"\u003e#475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(typing): Fix nodes type annotations in CeleryTestCluster (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v1.3.0 (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-1.2.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/celery/pytest-celery/commit/ed30e5890a308630b1066f2f2d0a39779e1d96c0\"\u003e\u003ccode\u003eed30e58\u003c/code\u003e\u003c/a\u003e Prepare for release: v1.3.0 (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/pytest-celery/commit/fe88c227f1f4030086b85b3e4877cf5e6b5cbd22\"\u003e\u003ccode\u003efe88c22\u003c/code\u003e\u003c/a\u003e fix(typing): Fix *nodes type annotations in CeleryTestCluster (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/pytest-celery/commit/f00b0c26c463765d3e5fcc8d92cc49302e77eb8c\"\u003e\u003ccode\u003ef00b0c2\u003c/code\u003e\u003c/a\u003e Make pytest-celery package install configurable in worker Dockerfile (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/475\"\u003e#475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/pytest-celery/commit/c045029bdfd8e1cb86704c8915897c6803003d89\"\u003e\u003ccode\u003ec045029\u003c/code\u003e\u003c/a\u003e Revert pycurl removal to match celery/kombu v5.6 SQS transport (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/pytest-celery/commit/83866701ff328cf510f66f2c0546783fda42d3cf\"\u003e\u003ccode\u003e8386670\u003c/code\u003e\u003c/a\u003e Removed --dist=loadscope (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/473\"\u003e#473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/pytest-celery/commit/20a8af5acba9054c7ae5505db7870ea85ce683f4\"\u003e\u003ccode\u003e20a8af5\u003c/code\u003e\u003c/a\u003e Use Poetry 1.8.4 in ReadTheDocs (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/470\"\u003e#470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/pytest-celery/commit/1ab5825fb90caa2c7ddf847c693570d020f6debb\"\u003e\u003ccode\u003e1ab5825\u003c/code\u003e\u003c/a\u003e Install local source in the examples (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/458\"\u003e#458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/pytest-celery/commit/615b62146186a6af2894a3931a33bd07e2675089\"\u003e\u003ccode\u003e615b621\u003c/code\u003e\u003c/a\u003e Bumping Poetry from v1.8.4 -\u0026gt; v2.2.1 inc. dependencies (poetry update --with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/pytest-celery/commit/6e1a4b984c52324959890cb110dc614250c17c70\"\u003e\u003ccode\u003e6e1a4b9\u003c/code\u003e\u003c/a\u003e Shift Python versions (-3.8, +3.14) (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/468\"\u003e#468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/pytest-celery/commit/a74eaf68110aea5fd2ac6d27475154f25f127498\"\u003e\u003ccode\u003ea74eaf6\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/pytest-celery/issues/467\"\u003e#467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/pytest-celery/compare/v1.2.1...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.2 to 0.15.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.6\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-12.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003elazy\u003c/code\u003e import parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23755\"\u003e#23755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for star-unpacking of comprehensions (PEP 798) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23788\"\u003e#23788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject semantic syntax errors for lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23757\"\u003e#23757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop a few rules from the preview default set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23879\"\u003e#23879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag \u003ccode\u003eVariable.get()\u003c/code\u003e calls outside of task execution context (\u003ccode\u003eAIR003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23584\"\u003e#23584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag runtime-varying values in DAG/task constructor arguments (\u003ccode\u003eAIR304\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23631\"\u003e#23631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003edelattr-with-constant\u003c/code\u003e (\u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23737\"\u003e#23737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Add \u003ccode\u003eTID254\u003c/code\u003e to enforce lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23777\"\u003e#23777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow users to ban lazy imports with \u003ccode\u003eTID254\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23847\"\u003e#23847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Retain \u003ccode\u003elazy\u003c/code\u003e keyword when sorting imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23762\"\u003e#23762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e automatically (\u003ccode\u003eUP006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23260\"\u003e#23260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Support \u003ccode\u003enewline\u003c/code\u003e parameter in \u003ccode\u003eFURB101\u003c/code\u003e for Python 3.13+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23754\"\u003e#23754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eos-path-commonprefix\u003c/code\u003e (\u003ccode\u003eRUF071\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23814\"\u003e#23814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add unsafe fix for os-path-commonprefix (\u003ccode\u003eRUF071\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23852\"\u003e#23852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Limit \u003ccode\u003eRUF036\u003c/code\u003e to typing contexts; make it unsafe for non-typing-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23765\"\u003e#23765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Use starred unpacking for \u003ccode\u003eRUF017\u003c/code\u003e in Python 3.15+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23789\"\u003e#23789\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--add-noqa\u003c/code\u003e creating unwanted leading whitespace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23773\"\u003e#23773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e--add-noqa\u003c/code\u003e breaking shebangs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23577\"\u003e#23577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Fix lambda body formatting for multiline calls and subscripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23866\"\u003e#23866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Preserve required annotation parentheses in annotated assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23865\"\u003e#23865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Preserve type-expression parentheses in the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23867\"\u003e#23867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Fix stack overflow in \u003ccode\u003eANN401\u003c/code\u003e on quoted annotations with escape sequences (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23912\"\u003e#23912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epep8-naming\u003c/code\u003e] Check naming conventions in \u003ccode\u003ematch\u003c/code\u003e pattern bindings (\u003ccode\u003eN806\u003c/code\u003e, \u003ccode\u003eN815\u003c/code\u003e, \u003ccode\u003eN816\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23899\"\u003e#23899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix comment duplication in fixes (\u003ccode\u003ePERF401\u003c/code\u003e, \u003ccode\u003ePERF403\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23729\"\u003e#23729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Properly trigger \u003ccode\u003esuper\u003c/code\u003e change in nested class (\u003ccode\u003eUP008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22677\"\u003e#22677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid syntax errors in \u003ccode\u003eRUF036\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23764\"\u003e#23764\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-bandit\u003c/code\u003e] Flag \u003ccode\u003eS501\u003c/code\u003e with \u003ccode\u003erequests.request\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23873\"\u003e#23873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-executable\u003c/code\u003e] Fix WSL detection in non-Docker containers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22879\"\u003e#22879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-print\u003c/code\u003e] Ignore \u003ccode\u003epprint\u003c/code\u003e calls with \u003ccode\u003estream=\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23787\"\u003e#23787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs for Markdown code block formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23871\"\u003e#23871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix misleading description for \u003ccode\u003eB904\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23731\"\u003e#23731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-12.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003elazy\u003c/code\u003e import parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23755\"\u003e#23755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for star-unpacking of comprehensions (PEP 798) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23788\"\u003e#23788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject semantic syntax errors for lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23757\"\u003e#23757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop a few rules from the preview default set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23879\"\u003e#23879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag \u003ccode\u003eVariable.get()\u003c/code\u003e calls outside of task execution context (\u003ccode\u003eAIR003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23584\"\u003e#23584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag runtime-varying values in DAG/task constructor arguments (\u003ccode\u003eAIR304\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23631\"\u003e#23631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003edelattr-with-constant\u003c/code\u003e (\u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23737\"\u003e#23737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Add \u003ccode\u003eTID254\u003c/code\u003e to enforce lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23777\"\u003e#23777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow users to ban lazy imports with \u003ccode\u003eTID254\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23847\"\u003e#23847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Retain \u003ccode\u003elazy\u003c/code\u003e keyword when sorting imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23762\"\u003e#23762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e automatically (\u003ccode\u003eUP006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23260\"\u003e#23260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Support \u003ccode\u003enewline\u003c/code\u003e parameter in \u003ccode\u003eFURB101\u003c/code\u003e for Python 3.13+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23754\"\u003e#23754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eos-path-commonprefix\u003c/code\u003e (\u003ccode\u003eRUF071\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23814\"\u003e#23814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add unsafe fix for os-path-commonprefix (\u003ccode\u003eRUF071\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23852\"\u003e#23852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Limit \u003ccode\u003eRUF036\u003c/code\u003e to typing contexts; make it unsafe for non-typing-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23765\"\u003e#23765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Use starred unpacking for \u003ccode\u003eRUF017\u003c/code\u003e in Python 3.15+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23789\"\u003e#23789\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--add-noqa\u003c/code\u003e creating unwanted leading whitespace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23773\"\u003e#23773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e--add-noqa\u003c/code\u003e breaking shebangs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23577\"\u003e#23577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Fix lambda body formatting for multiline calls and subscripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23866\"\u003e#23866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Preserve required annotation parentheses in annotated assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23865\"\u003e#23865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Preserve type-expression parentheses in the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23867\"\u003e#23867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Fix stack overflow in \u003ccode\u003eANN401\u003c/code\u003e on quoted annotations with escape sequences (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23912\"\u003e#23912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epep8-naming\u003c/code\u003e] Check naming conventions in \u003ccode\u003ematch\u003c/code\u003e pattern bindings (\u003ccode\u003eN806\u003c/code\u003e, \u003ccode\u003eN815\u003c/code\u003e, \u003ccode\u003eN816\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23899\"\u003e#23899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix comment duplication in fixes (\u003ccode\u003ePERF401\u003c/code\u003e, \u003ccode\u003ePERF403\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23729\"\u003e#23729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Properly trigger \u003ccode\u003esuper\u003c/code\u003e change in nested class (\u003ccode\u003eUP008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22677\"\u003e#22677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid syntax errors in \u003ccode\u003eRUF036\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23764\"\u003e#23764\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-bandit\u003c/code\u003e] Flag \u003ccode\u003eS501\u003c/code\u003e with \u003ccode\u003erequests.request\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23873\"\u003e#23873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-executable\u003c/code\u003e] Fix WSL detection in non-Docker containers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22879\"\u003e#22879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-print\u003c/code\u003e] Ignore \u003ccode\u003epprint\u003c/code\u003e calls with \u003ccode\u003estream=\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23787\"\u003e#23787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs for Markdown code block formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23871\"\u003e#23871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix misleading description for \u003ccode\u003eB904\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23731\"\u003e#23731\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/zsol\"\u003e\u003ccode\u003e@​zsol\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/e4c7f357777a2fdd34dbe6a98b1b7d3e7488f675\"\u003e\u003ccode\u003ee4c7f35\u003c/code\u003e\u003c/a\u003e Bump 0.15.6 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23919\"\u003e#23919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/edfe6c17a493669227da45ce7edc786208d9d0b0\"\u003e\u003ccode\u003eedfe6c1\u003c/code\u003e\u003c/a\u003e [ty] Narrow type context during collection literal inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23844\"\u003e#23844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dd16d689abd9d0fa1caf4316e70479fd422b6142\"\u003e\u003ccode\u003edd16d68\u003c/code\u003e\u003c/a\u003e Exclude broken symlink in ecosystem check (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23921\"\u003e#23921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/3f94c6ac6397cdc3160459d9d6e3892e3f3242dd\"\u003e\u003ccode\u003e3f94c6a\u003c/code\u003e\u003c/a\u003e Fix stack overflow in ANN401 on quoted annotations with escape sequences (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23\"\u003e#23\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/91fc7bd3f936974d7107ba8fd0668bc251a55c58\"\u003e\u003ccode\u003e91fc7bd\u003c/code\u003e\u003c/a\u003e [ty] Fix false-positive diagnostics for PEP-604 union annotations on attribut...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/04229cffb44dfe8c64a0879eb3cea472a08d1565\"\u003e\u003ccode\u003e04229cf\u003c/code\u003e\u003c/a\u003e [ty] Initial test suite for PEP-728 \u003ccode\u003eTypedDict\u003c/code\u003e features (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23832\"\u003e#23832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/728b9d6fd300d492fc2572bcfade170141296f97\"\u003e\u003ccode\u003e728b9d6\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epep8-naming\u003c/code\u003e] Check naming conventions in \u003ccode\u003ematch\u003c/code\u003e pattern bindings (\u003ccode\u003eN806\u003c/code\u003e,...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/88d1eecd261679fc9d1d10f30d814230a7f28513\"\u003e\u003ccode\u003e88d1eec\u003c/code\u003e\u003c/a\u003e [ty] Ensure a \u003ccode\u003etype[]\u003c/code\u003e type \u003ccode\u003eT\u003c/code\u003e is always considered assignable to a union th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/37cdd61406ad4965847c9baa7c3f6ca633887d68\"\u003e\u003ccode\u003e37cdd61\u003c/code\u003e\u003c/a\u003e Fix lambda body formatting for multiline calls and subscripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23866\"\u003e#23866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a25a4df54aca67d23b4867ddad634fe0768fd6a2\"\u003e\u003ccode\u003ea25a4df\u003c/code\u003e\u003c/a\u003e [ty] Disambiguate duplicate-looking overloaded callables in union display (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.2...0.15.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.7.2 to 9.7.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.5\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.4\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed environment (recommended by \u003ca href=\"https://github.com/caveeroo\"\u003e\u003ccode\u003e@​caveeroo\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\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/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.5 (2026-03-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.4 (2026-03-03)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed environment\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.3 (2026-02-24)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8567\"\u003e#8567\u003c/a\u003e: Print MkDocs 2.0 incompatibility warning to stderr\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.2 (2026-02-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to 'mkdocs build' about impending MkDocs 2.0 incompatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pinned blog posts and author profiles\u003c/li\u003e\n\u003cli\u003eAdded support for customizing pagination for blog index pages\u003c/li\u003e\n\u003cli\u003eAdded support for customizing blog category sort order\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/00b9933e5821fd852700268767d4fd53ae1ce1cb\"\u003e\u003ccode\u003e00b9933\u003c/code\u003e\u003c/a\u003e Prepare 9.7.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/37683d12c9cd62309aa917237741ee0886709b7c\"\u003e\u003ccode\u003e37683d1\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/199e31598055d5d6ea538618804c7558f5d81047\"\u003e\u003ccode\u003e199e315\u003c/code\u003e\u003c/a\u003e Updated warning message to clarify relation to MkDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/10258334eb13545e6d708cf121c3867bfbdb6017\"\u003e\u003ccode\u003e1025833\u003c/code\u003e\u003c/a\u003e Limited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/1532f523f6c650c9d6fd16229ee8bec0759b4151\"\u003e\u003ccode\u003e1532f52\u003c/code\u003e\u003c/a\u003e Added update log to blog post\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/d0c8b2862a966f5f268d4a4c35bb4fcfccebb9b1\"\u003e\u003ccode\u003ed0c8b28\u003c/code\u003e\u003c/a\u003e Updated dependencies to fix vulnerabilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/71d48699a0e2bef231e796818c4dc20b230a5f45\"\u003e\u003ccode\u003e71d4869\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/0d30a135a316271d94538e9b0a441f543f56460b\"\u003e\u003ccode\u003e0d30a13\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/8b55995364388ce5ca7ff2c0ca462e24510b7e63\"\u003e\u003ccode\u003e8b55995\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/66d413f8885d68157e7e6ca615f3e6bee0830795\"\u003e\u003ccode\u003e66d413f\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.7.2...9.7.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.6.0 to 0.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-section-index` from 0.3.10 to 0.3.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/releases\"\u003emkdocs-section-index's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/pull/27\"\u003eoprypin/mkdocs-section-index#27\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ehttps://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\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/oprypin/mkdocs-section-index/commit/a8235f6f8eb5927b966a3aaea8afe5fa161ecece\"\u003e\u003ccode\u003ea8235f6\u003c/code\u003e\u003c/a\u003e v0.3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/ac66dfda53834d79ce8e0af6f340dddd7cde2bf9\"\u003e\u003ccode\u003eac66dfd\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-section-index/issues/27\"\u003e#27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-section-index/commit/32866cd83993ee3eefbac0fcc13911692796d8f6\"\u003e\u003ccode\u003e32866cd\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-section-index/compare/v0.3.10...v0.3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-literate-nav` from 0.6.2 to 0.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/releases\"\u003emkdocs-literate-nav's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/pull/39\"\u003eoprypin/mkdocs-literate-nav#39\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ehttps://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.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/oprypin/mkdocs-literate-nav/commit/b91268c263f61e38a7e27f77ccf38ec287e0c0b5\"\u003e\u003ccode\u003eb91268c\u003c/code\u003e\u003c/a\u003e v0.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/cee9ec49a1523036081378a39bda9fa014432526\"\u003e\u003ccode\u003ecee9ec4\u003c/code\u003e\u003c/a\u003e Exclude properdocs when testing minimal dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/ea523f5864f59fb7939f84cd4400df67280ad52c\"\u003e\u003ccode\u003eea523f5\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-literate-nav/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/258b15a15a3e25cedc816d0a5a971acfdb86541e\"\u003e\u003ccode\u003e258b15a\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.2...v0.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jupyterlab` from 4.5.5 to 4.5.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jupyterlab/jupyterlab/releases\"\u003ejupyterlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.5.6\u003c/h2\u003e\n\u003ch2\u003e4.5.6\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/v4.5.5...a6dda8829b2d6b670de634081d26c1a39be145c4\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplace scrollback implementation with scroll anchoring outside of \u003ccode\u003efull\u003c/code\u003e windowing mode \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18522\"\u003e#18522\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHarmonize translation wrappers in Python files to use \u003ccode\u003egettext\u003c/code\u003e methods \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18597\"\u003e#18597\u003c/a\u003e (\u003ca href=\"https://github.com/tmetzl\"\u003e\u003ccode\u003e@​tmetzl\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unimplemented \u003ccode\u003efilebrowser:search\u003c/code\u003e command \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18593\"\u003e#18593\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix status bar focus outlines \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18585\"\u003e#18585\u003c/a\u003e (\u003ca href=\"https://github.com/IsabelParedes\"\u003e\u003ccode\u003e@​IsabelParedes\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efilebrowser:create-new-file\u003c/code\u003e context menu selector \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18588\"\u003e#18588\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix single-character code blocks rendering as empty \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18572\"\u003e#18572\u003c/a\u003e (\u003ca href=\"https://github.com/soniya-malviy\"\u003e\u003ccode\u003e@​soniya-malviy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003ecode\u003c/code\u003e input in \u003ccode\u003eCodeConsole\u003c/code\u003e when configured \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18554\"\u003e#18554\u003c/a\u003e (\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate benchmark snapshots even if base snapshots require changes \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18549\"\u003e#18549\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2026-02-23\u0026amp;to=2026-03-11\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aagriyakhetarpal+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/IsabelParedes\"\u003e\u003ccode\u003e@​IsabelParedes\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AIsabelParedes+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajtpio+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/soniya-malviy\"\u003e\u003ccode\u003e@​soniya-malviy\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Asoniya-malviy+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/tmetzl\"\u003e\u003ccode\u003e@​tmetzl\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Atmetzl+updated%3A2026-02-23..2026-03-11\u0026amp;type=Issues\"\u003eactivity\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/jupyterlab/jupyterlab/commit/e514705afbea2a1096fa2ffe48489c195ff1a4d2\"\u003e\u003ccode\u003ee514705\u003c/code\u003e\u003c/a\u003e [ci skip] Publish 4.5.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/a6dda8829b2d6b670de634081d26c1a39be145c4\"\u003e\u003ccode\u003ea6dda88\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18522\"\u003e#18522\u003c/a\u003e on branch 4.5.x (Replace scrollback implementation with sc...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/4a28719c1701ccfa31ab282da38a49159cbcb82e\"\u003e\u003ccode\u003e4a28719\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18597\"\u003e#18597\u003c/a\u003e on branch 4.5.x (Harmonize translation wrappers in Python ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/1714c4ab61d14f4cd1a89b726336a9e490170fd6\"\u003e\u003ccode\u003e1714c4a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18593\"\u003e#18593\u003c/a\u003e on branch 4.5.x (Remove unimplemented \u003ccode\u003efilebrowser:search\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/3624bbea0ccc6657aacc339da1550aa3d3c8c790\"\u003e\u003ccode\u003e3624bbe\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18585\"\u003e#18585\u003c/a\u003e on branch 4.5.x (Fix status bar focus outlines) (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18590\"\u003e#18590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/bf99d9d1e9dfb459092d85a7cf8e29fe8404d283\"\u003e\u003ccode\u003ebf99d9d\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18588\"\u003e#18588\u003c/a\u003e on branch 4.5.x (Fix \u003ccode\u003efilebrowser:create-new-file\u003c/code\u003e context...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/5b6dee951eee70f8806ef4a18c6a4e20c0cf5778\"\u003e\u003ccode\u003e5b6dee9\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18572\"\u003e#18572\u003c/a\u003e on branch 4.5.x (Fix single-character code blocks renderin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/da80d67c2805d10708a1914628c00ee983d57793\"\u003e\u003ccode\u003eda80d67\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18554\"\u003e#18554\u003c/a\u003e on branch 4.5.x (Hide \u003ccode\u003ecode\u003c/code\u003e input in \u003ccode\u003eCodeConsole\u003c/code\u003e when c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/5267a8c4f68366155f1e44e3e7a14c8c9d850076\"\u003e\u003ccode\u003e5267a8c\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18549\"\u003e#18549\u003c/a\u003e on branch 4.5.x (Update benchmark snapshots even if base s...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/@jupyterlab/lsp@4.5.5...@jupyterlab/lsp@4.5.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `notebook` from 7.5.3 to 7.5.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jupyter/notebook/releases\"\u003enotebook's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.5\u003c/h2\u003e\n\u003ch2\u003e7.5.5\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.4...4f8438b0c67dc4f010bf8cd052da4f16e2ed3828\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to JupyterLab v4.5.6 \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7861\"\u003e#7861\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[7.5.x] Drop Python 3.9 on CI \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7860\"\u003e#7860\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix check links \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7857\"\u003e#7857\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/graphs/contributors?from=2026-02-24\u0026amp;to=2026-03-11\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2026-02-24..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003ev7.5.4\u003c/h2\u003e\n\u003ch2\u003e7.5.4\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.3...e5d8418b706fcefd4208bb61c22399dd3123555b\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to JupyterLab v4.5.5 \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7842\"\u003e#7842\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PyO3 CI failure with Python 3.15 \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7836\"\u003e#7836\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/graphs/contributors?from=2026-01-26\u0026amp;to=2026-02-24\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2026-01-26..2026-02-24\u0026amp;type=Issues\"\u003eactivity\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/jupyter/notebook/blob/@jupyter-notebook/tree@7.5.5/CHANGELOG.md\"\u003enotebook's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.5.5\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.4...4f8438b0c67dc4f010bf8cd052da4f16e2ed3828\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to JupyterLab v4.5.6 \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7861\"\u003e#7861\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[7.5.x] Drop Python 3.9 on CI \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7860\"\u003e#7860\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix check links \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7857\"\u003e#7857\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/graphs/contributors?from=2026-02-24\u0026amp;to=2026-03-11\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2026-02-24..2026-03-11\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e7.5.4\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.3...e5d8418b706fcefd4208bb61c22399dd3123555b\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to JupyterLab v4.5.5 \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7842\"\u003e#7842\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PyO3 CI failure with Python 3.15 \u003ca href=\"https://redirect.github.com/jupyter/notebook/pull/7836\"\u003e#7836\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyter/notebook/graphs/contributors?from=2026-01-26\u0026amp;to=2026-02-24\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2026-01-26..2026-02-24\u0026amp;type=Issues\"\u003eactivity\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/jupyter/notebook/commit/9a2c88fe646bac05b39dbe53e3e0ce95cafee016\"\u003e\u003ccode\u003e9a2c88f\u003c/code\u003e\u003c/a\u003e Publish 7.5.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/4f8438b0c67dc4f010bf8cd052da4f16e2ed3828\"\u003e\u003ccode\u003e4f8438b\u003c/code\u003e\u003c/a\u003e Update to JupyterLab v4.5.6 (\u003ca href=\"https://redirect.github.com/jupyter/notebook/issues/7861\"\u003e#7861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/f78fcfada85f9e4b46003bc1b831c83e6f4c30b3\"\u003e\u003ccode\u003ef78fcfa\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyter/notebook/issues/7857\"\u003e#7857\u003c/a\u003e: Fix check links (\u003ca href=\"https://redirect.github.com/jupyter/notebook/issues/7858\"\u003e#7858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/9e4cf2a44594e650e1ae3da49f81ae420135f32f\"\u003e\u003ccode\u003e9e4cf2a\u003c/code\u003e\u003c/a\u003e [7.5.x] Drop Python 3.9 on CI (\u003ca href=\"https://redirect.github.com/jupyter/notebook/issues/7860\"\u003e#7860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/ecc3aaf1bbf8f9cbec9c5d85df79db0f62b6d1e6\"\u003e\u003ccode\u003eecc3aaf\u003c/code\u003e\u003c/a\u003e Publish 7.5.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/e5d8418b706fcefd4208bb61c22399dd3123555b\"\u003e\u003ccode\u003ee5d8418\u003c/code\u003e\u003c/a\u003e Update to JupyterLab v4.5.5 (\u003ca href=\"https://redirect.github.com/jupyter/notebook/issues/7842\"\u003e#7842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyter/notebook/commit/6fe4f8e01951f92dde768feda86569995c8c1006\"\u003e\u003ccode\u003e6fe4f8e\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyter/notebook/issues/7836\"\u003e#7836\u003c/a\u003e: Fix PyO3 CI failure with Python 3.15 (\u003ca href=\"https://redirect.github.com/jupyter/notebook/issues/7837\"\u003e#7837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jupyter/notebook/compare/@jupyter-notebook/tree@7.5.3...@jupyter-notebook/tree@7.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery-types` from 0.24.0 to 0.26.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sbdchd/celery-types/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-tqdm` from 4.67.3.20260205 to 4.67.3.20260303\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\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Climate-REF/climate-ref/pull/600","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Climate-REF%2Fclimate-ref/issues/600","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/600/packages"}},{"old_version":"0.6.0","new_version":"0.6.1","update_type":"patch","path":null,"pr_created_at":"2026-03-17T05:26:37.000Z","version_change":"0.6.0 → 0.6.1","issue":{"uuid":"4086294345","node_id":"PR_kwDONe-0Ws7LHNfI","number":224,"state":"open","title":"build(deps-dev): bump mkdocs-gen-files from 0.6.0 to 0.6.1","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-17T05:26:37.000Z","updated_at":"2026-03-17T05:28:02.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"mkdocs-gen-files","old_version":"0.6.0","new_version":"0.6.1","repository_url":"https://github.com/oprypin/mkdocs-gen-files"}],"path":null,"ecosystem":"pip"},"body":"Bumps [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) from 0.6.0 to 0.6.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWarn when this plugin is being used from the mkdocs executable\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/42\"\u003eoprypin/mkdocs-gen-files#42\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eApologies for the inconvenience. We are starting a community continuation of MkDocs under a new name \u003cstrong\u003eProperDocs\u003c/strong\u003e, and plugins are our main hope regarding how we can spread the word.\nSee \u003ca href=\"https://github.com/ProperDocs/properdocs/discussions/33\"\u003ehttps://github.com/ProperDocs/properdocs/discussions/33\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/05c38bb46caa8d6550da54e291bddc59c4610d07\"\u003e\u003ccode\u003e05c38bb\u003c/code\u003e\u003c/a\u003e v0.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d2850806e39047a7ad4ca7c415adb56d3a26b2cc\"\u003e\u003ccode\u003ed285080\u003c/code\u003e\u003c/a\u003e Warn when this plugin is being used from the mkdocs executable (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/42\"\u003e#42\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/dcc896d45a2c31ddbf8c78317020647631ba38cd\"\u003e\u003ccode\u003edcc896d\u003c/code\u003e\u003c/a\u003e Drop testing under Python 3.9 to fix CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.6.0...v0.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mkdocs-gen-files\u0026package-manager=uv\u0026previous-version=0.6.0\u0026new-version=0.6.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Paul-B98/python-project-template/pull/224","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Paul-B98%2Fpython-project-template/issues/224","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/224/packages"}},{"old_version":"0.5.0","new_version":"0.6.0","update_type":"minor","path":null,"pr_created_at":"2026-02-20T12:02:39.000Z","version_change":"0.5.0 → 0.6.0","issue":{"uuid":"3968222814","node_id":"PR_kwDOLYRIeM7FJib2","number":16,"state":"closed","title":"Bump the optional group with 15 updates","user":"dependabot[bot]","labels":["part:tooling"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-02-20T12:04:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-20T12:02:39.000Z","updated_at":"2026-02-20T12:04:44.000Z","time_to_close":123,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"optional","update_count":15,"packages":[{"name":"flake8","old_version":"7.0.0","new_version":"7.3.0","repository_url":"https://github.com/pycqa/flake8"},{"name":"flake8-pyproject","old_version":"1.2.3","new_version":"1.2.4","repository_url":"https://github.com/john-hen/Flake8-pyproject"},{"name":"pydoclint","old_version":"0.4.1","new_version":"0.8.3","repository_url":"https://github.com/jsh9/pydoclint"},{"name":"markdown","old_version":"3.6","new_version":"3.10.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mike","old_version":"2.1.1","new_version":"2.1.3","repository_url":"https://github.com/jimporter/mike"},{"name":"mkdocs-gen-files","old_version":"0.5.0","new_version":"0.6.0","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-literate-nav","old_version":"0.6.1","new_version":"0.6.2","repository_url":"https://github.com/oprypin/mkdocs-literate-nav"},{"name":"mkdocs-macros-plugin","old_version":"1.0.5","new_version":"1.5.0","repository_url":"https://github.com/fralau/mkdocs_macros_plugin"},{"name":"mkdocs-material","old_version":"9.5.25","new_version":"9.7.2","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"frequenz-repo-config","old_version":"0.9.2","new_version":"0.14.0"},{"name":"mypy","old_version":"1.10.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"types-markdown","old_version":"3.6.0.20240316","new_version":"3.10.2.20260211","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"frequenz-repo-config","old_version":"0.9.2","new_version":"0.14.0"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"async-solipsism","old_version":"0.6","new_version":"0.9","repository_url":"https://github.com/bmerry/async-solipsism"}],"path":null,"ecosystem":"pip"},"body":"Bumps the optional group with 15 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [flake8](https://github.com/pycqa/flake8) | `7.0.0` | `7.3.0` |\n| [flake8-pyproject](https://github.com/john-hen/Flake8-pyproject) | `1.2.3` | `1.2.4` |\n| [pydoclint](https://github.com/jsh9/pydoclint) | `0.4.1` | `0.8.3` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.6` | `3.10.2` |\n| [mike](https://github.com/jimporter/mike) | `2.1.1` | `2.1.3` |\n| [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) | `0.5.0` | `0.6.0` |\n| [mkdocs-literate-nav](https://github.com/oprypin/mkdocs-literate-nav) | `0.6.1` | `0.6.2` |\n| [mkdocs-macros-plugin](https://github.com/fralau/mkdocs_macros_plugin) | `1.0.5` | `1.5.0` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.5.25` | `9.7.2` |\n| [frequenz-repo-config[lib]](https://github.com/frequenz-floss/frequenz-repo-config-python) | `0.9.2` | `0.14.0` |\n| [mypy](https://github.com/python/mypy) | `1.10.0` | `1.19.1` |\n| [types-markdown](https://github.com/typeshed-internal/stub_uploader) | `3.6.0.20240316` | `3.10.2.20260211` |\n| [frequenz-repo-config[extra-lint-examples]](https://github.com/frequenz-floss/frequenz-repo-config-python) | `0.9.2` | `0.14.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [async-solipsism](https://github.com/bmerry/async-solipsism) | `0.6` | `0.9` |\n\nUpdates `flake8` from 7.0.0 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/c48217e1fc006c2dddd14df54e83b67da15de5cd\"\u003e\u003ccode\u003ec48217e\u003c/code\u003e\u003c/a\u003e Release 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/f9e0f33281d5bb892cae2c674ac398439d99c732\"\u003e\u003ccode\u003ef9e0f33\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1986\"\u003e#1986\u003c/a\u003e from PyCQA/document-f542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6bcdb628597fa2d03494965089ff87a492ffc1e9\"\u003e\u003ccode\u003e6bcdb62\u003c/code\u003e\u003c/a\u003e document F542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/70a15b8890d5bdf8c449ebb1b5259bd0140cc16b\"\u003e\u003ccode\u003e70a15b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1985\"\u003e#1985\u003c/a\u003e from PyCQA/upgrade-deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/4941a3e32e54488698ecbc23993bfeb2a60c0fc5\"\u003e\u003ccode\u003e4941a3e\u003c/code\u003e\u003c/a\u003e upgrade pyflakes / pycodestyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/23e4005c5501999c29e1e3774de7ed18d1e4e22d\"\u003e\u003ccode\u003e23e4005\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1983\"\u003e#1983\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/019424b80d3d7d5d8a2a1638f5877080546e3f46\"\u003e\u003ccode\u003e019424b\u003c/code\u003e\u003c/a\u003e add support for t-strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6b6f3d5fefecc994a06f425c18c3cddc9b71e4a4\"\u003e\u003ccode\u003e6b6f3d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1980\"\u003e#1980\u003c/a\u003e from PyCQA/asottile-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/8dfa6695b4fb1e1401b357367a0a71037d29f6aa\"\u003e\u003ccode\u003e8dfa669\u003c/code\u003e\u003c/a\u003e add rtd sphinx config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/ce3411118382d9332feb2749c8f417d10bfa2584\"\u003e\u003ccode\u003ece34111\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1976\"\u003e#1976\u003c/a\u003e from PyCQA/document-f824\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pycqa/flake8/compare/7.0.0...7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8-pyproject` from 1.2.3 to 1.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/john-hen/Flake8-pyproject/releases\"\u003eflake8-pyproject's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixes typo in name of meta variable in \u003ccode\u003e--toml-config\u003c/code\u003e help message. (\u003ca href=\"https://redirect.github.com/john-hen/Flake8-pyproject/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRegisters GitHub repo as trusted publisher for PyPI releases. (\u003ca href=\"https://redirect.github.com/john-hen/Flake8-pyproject/issues/38\"\u003e#38\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/john-hen/Flake8-pyproject/commit/3c516a9319beee324f9a200dfb4e08677de4a63f\"\u003e\u003ccode\u003e3c516a9\u003c/code\u003e\u003c/a\u003e Bumped version to 1.2.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/df70f19558f784eb0cb7988440735d56f53f3cae\"\u003e\u003ccode\u003edf70f19\u003c/code\u003e\u003c/a\u003e Added GitHub workflow for releases on PyPI.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/d46e99c695149cd860a918c354de0d1d89166b7e\"\u003e\u003ccode\u003ed46e99c\u003c/code\u003e\u003c/a\u003e Only run scheduled test weekly instead of nightly.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/da0b9ed7d586490aff8503e38f2d481c1706bdee\"\u003e\u003ccode\u003eda0b9ed\u003c/code\u003e\u003c/a\u003e Added link to GitHub releases as a project URL.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/8e4b87fbe7291687f41b11180c8b3ae486ac538e\"\u003e\u003ccode\u003e8e4b87f\u003c/code\u003e\u003c/a\u003e Cosmetic changes to code format of dev tools in \u003ccode\u003etools\u003c/code\u003e folder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/4227bd4a987b66a9ab46f0b4e04b098e388598e7\"\u003e\u003ccode\u003e4227bd4\u003c/code\u003e\u003c/a\u003e Use longer names for dev tools in \u003ccode\u003etools\u003c/code\u003e folder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/3866f48fbcd63231622f54e848268273605be1a8\"\u003e\u003ccode\u003e3866f48\u003c/code\u003e\u003c/a\u003e Mention early on that we need to be called in \u003ccode\u003epyproject.toml\u003c/code\u003e folder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/40bf63915dabd85a53a7d06c24232a3b278c4b25\"\u003e\u003ccode\u003e40bf639\u003c/code\u003e\u003c/a\u003e Removed configuration and documentation of pre-commit hook.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/9df7abb5a4b1b25f032c7d3f06fd3f074424c471\"\u003e\u003ccode\u003e9df7abb\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/2c230622c7e81e3f2f6cd632272c92fd6bdda83b\"\u003e\u003ccode\u003e2c23062\u003c/code\u003e\u003c/a\u003e Fixed reporting of code coverage.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/john-hen/Flake8-pyproject/compare/1.2.3...1.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydoclint` from 0.4.1 to 0.8.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jsh9/pydoclint/releases\"\u003epydoclint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.8.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix baseline renegeration bug by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/275\"\u003ejsh9/pydoclint#275\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd config option to allow omitting stars in varargs by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/276\"\u003ejsh9/pydoclint#276\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/277\"\u003ejsh9/pydoclint#277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.2...0.8.3\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.2...0.8.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.8.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ability to partially match violation codes by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/272\"\u003ejsh9/pydoclint#272\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix how multiple \u003cstrong\u003einit\u003c/strong\u003e() are recognized by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/273\"\u003ejsh9/pydoclint#273\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.1...0.8.2\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.1...0.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.8.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChange logic to detect docstring style mismatch by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/271\"\u003ejsh9/pydoclint#271\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.0...0.8.1\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.0...0.8.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.8.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd inline violation suppression for native mode by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/270\"\u003ejsh9/pydoclint#270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.6...0.8.0\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.6...0.8.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.7.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefresh linters \u0026amp; formatters by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/269\"\u003ejsh9/pydoclint#269\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.5...0.7.6\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.5...0.7.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.7.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e@property\u003c/code\u003e + \u003ccode\u003e@abstractmethod\u003c/code\u003e without a Returns: section by \u003ca href=\"https://github.com/barometz\"\u003e\u003ccode\u003e@​barometz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/261\"\u003ejsh9/pydoclint#261\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/barometz\"\u003e\u003ccode\u003e@​barometz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/261\"\u003ejsh9/pydoclint#261\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.4...0.7.5\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.4...0.7.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.7.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jsh9/pydoclint/blob/main/CHANGELOG.md\"\u003epydoclint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.8.3] - 2025-11-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eA new config option \u003ccode\u003e--omit-stars-when-documenting-varargs\u003c/code\u003e (shortform:\n\u003ccode\u003e-oswdv\u003c/code\u003e) so docstrings may describe varargs without the leading \u003ccode\u003e*\u003c/code\u003e\ncharacters (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/268\"\u003ejsh9/pydoclint#268\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFixed\n\u003cul\u003e\n\u003cli\u003eA bug where \u003ccode\u003e--auto-regenerate-baseline\u003c/code\u003e removes entries of files that have\nnot yet been fixed (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/274\"\u003ejsh9/pydoclint#274\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.2...0.8.3\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.2...0.8.3\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.8.2] - 2025-11-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eAbility to partially match violation codes in inline \u003ccode\u003enoqa\u003c/code\u003e in the native\nmode (which \u003cem\u003eflake8\u003c/em\u003e already supports)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFixed\n\u003cul\u003e\n\u003cli\u003eA bug: when there are more than one \u003ccode\u003e__init__()\u003c/code\u003e in a class (overloaded),\nthe first \u003ccode\u003e__init__()\u003c/code\u003e is incorrectly recognized as the \u0026quot;right\u0026quot; one. (The\nlast \u003ccode\u003e__init__()\u003c/code\u003e should be considered the right one.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.1...0.8.2\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.1...0.8.2\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.8.1] - 2025-11-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged\n\u003cul\u003e\n\u003cli\u003eThe logic to detect docstring style mismatches, fixing a false positive\ncase where non-Sphinx style docstrings are detected as Sphinx style\n(because there are some rST keywords in them)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.0...0.8.1\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.0...0.8.1\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.8.0] - 2025-11-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eNew functionality: \u003cem\u003epydoclint\u003c/em\u003e native mode can parse \u0026quot;noqa\u0026quot; comments and\nthus users can suppress violations in the native mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.6...0.8.0\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.6...0.8.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.7.6] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged\n\u003cul\u003e\n\u003cli\u003eUpdated linter and auto-formatter configurations\u003c/li\u003e\n\u003cli\u003eMade a lot of changes to fix code style; some logic was also updated per\nthe suggestions of linters\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.5...0.7.6\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.5...0.7.6\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/98bb10c4e73a050e31471409df8edfaeb88befb8\"\u003e\u003ccode\u003e98bb10c\u003c/code\u003e\u003c/a\u003e Add config option to allow omitting stars in varargs (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/277\"\u003e#277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/c37407d03df27b4c37b31e697fd474377c3c4efc\"\u003e\u003ccode\u003ec37407d\u003c/code\u003e\u003c/a\u003e Fix baseline renegeration bug (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/276\"\u003e#276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/3386cd2ad39784792a0d39d942dd4b26960c2a27\"\u003e\u003ccode\u003e3386cd2\u003c/code\u003e\u003c/a\u003e Fix baseline renegeration bug (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/275\"\u003e#275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/8c1081806da276917ac686a12f0c435414955da0\"\u003e\u003ccode\u003e8c10818\u003c/code\u003e\u003c/a\u003e Fix how multiple \u003cstrong\u003einit\u003c/strong\u003e() are recognized (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/273\"\u003e#273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/51435e3714765f9d4b220c868ab185670f3bb14b\"\u003e\u003ccode\u003e51435e3\u003c/code\u003e\u003c/a\u003e Add ability to partially match violation codes (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/e361239034992fbceac83994e47a40a5e7ecf3ea\"\u003e\u003ccode\u003ee361239\u003c/code\u003e\u003c/a\u003e Change logic to detect docstring style mismatch (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/271\"\u003e#271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/bf4c4021dccf832777452e05e94f98a36c59636b\"\u003e\u003ccode\u003ebf4c402\u003c/code\u003e\u003c/a\u003e Add hyperlink\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/a7585273e2b3c8e84a1883d33a168519947c807f\"\u003e\u003ccode\u003ea758527\u003c/code\u003e\u003c/a\u003e Update --check-style-mismatch explanations in config_options.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/e8ffd8988fe57ce4dc8a0625c3281b24ca396240\"\u003e\u003ccode\u003ee8ffd89\u003c/code\u003e\u003c/a\u003e Add inline violation suppression for native mode (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/270\"\u003e#270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/0a9ad0c159fe5ced98dbbcd3b850a8850ed009b7\"\u003e\u003ccode\u003e0a9ad0c\u003c/code\u003e\u003c/a\u003e Refresh linters \u0026amp; formatters (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.4.1...0.8.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markdown` from 3.6 to 3.10.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a regression related to comment handling (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1590\"\u003e#1590\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMore reliable fix for \u003ccode\u003e\u0026lt;/\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1593\"\u003e#1593\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.10.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.9.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.10.2] - 2026-02-09\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a regression related to comment handling (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1590\"\u003e#1590\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMore reliable fix for \u003ccode\u003e\u0026lt;/\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1593\"\u003e#1593\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.1] - 2026-01-21\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/e7a0efb3a7c36d6b8005403122705662bc17c904\"\u003e\u003ccode\u003ee7a0efb\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/630183336bda57c258becc3ed229105481876a7e\"\u003e\u003ccode\u003e6301833\u003c/code\u003e\u003c/a\u003e Document HTML sanitation policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/7f29f1a69d236f5bb11645c2fa03fcf701487c8c\"\u003e\u003ccode\u003e7f29f1a\u003c/code\u003e\u003c/a\u003e More reliable fix for \u003ccode\u003e\u0026lt;/\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c4386475a6b6daea43b7d7717add4271adc9a3c1\"\u003e\u003ccode\u003ec438647\u003c/code\u003e\u003c/a\u003e Fix regression of special comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/e5fa5b86e8ec380cbc520cfc637d72c779e5c601\"\u003e\u003ccode\u003ee5fa5b8\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/f9253495f5d9919f2fdd5e147832b5fc21330f65\"\u003e\u003ccode\u003ef925349\u003c/code\u003e\u003c/a\u003e More HTML fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/9933a0a4699f3dea91f46528a2bf54863f531c08\"\u003e\u003ccode\u003e9933a0a\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Allow reference links with backticks\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/07dfa4eb43f7a2ab3181b4f842a960a03a6c1221\"\u003e\u003ccode\u003e07dfa4e\u003c/code\u003e\u003c/a\u003e Allow reference links with backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/fb6b27a6ff90980b5bcb0cd51528a7c9dc3a93ca\"\u003e\u003ccode\u003efb6b27a\u003c/code\u003e\u003c/a\u003e Fix infinite loop when text contains multiple unclosed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/89112c293f7b399ae8808f3a06306f46601e9684\"\u003e\u003ccode\u003e89112c2\u003c/code\u003e\u003c/a\u003e Make the docs build successfully with mkdocstrings-python 2.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.6...3.10.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mike` from 2.1.1 to 2.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jimporter/mike/releases\"\u003emike's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.3\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWhen deploying using a deploy prefix, only delete stale versions of the docs within that prefix\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.1.2\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove ambiguity of some Git commands so that file and branch names don't collide\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/jimporter/mike/blob/master/CHANGES.md\"\u003emike's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.3 (2024-08-12)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWhen deploying using a deploy prefix, only delete stale versions of the docs\nwithin that prefix\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003ev2.1.2 (2024-06-23)\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove ambiguity of some Git commands so that file and branch names don't\ncollide\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/c4e96085f86e6930e9669e12d81941eff7c3de1d\"\u003e\u003ccode\u003ec4e9608\u003c/code\u003e\u003c/a\u003e Update version to 2.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/3b19e27e9041cca20131f97419a9d7d88f85cf37\"\u003e\u003ccode\u003e3b19e27\u003c/code\u003e\u003c/a\u003e Announce the previous change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/dd9826a855965b0ce6bd06d290665f43ce9dabab\"\u003e\u003ccode\u003edd9826a\u003c/code\u003e\u003c/a\u003e Consult deploy prefix when deleting files during deploy; resolves \u003ca href=\"https://redirect.github.com/jimporter/mike/issues/227\"\u003e#227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/91cf5ee70da446a80bbc6108513581d0d6858ecf\"\u003e\u003ccode\u003e91cf5ee\u003c/code\u003e\u003c/a\u003e Properly escape parameters in regex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/90cf1314af3452003eaf40c9f97853efd2ee4e86\"\u003e\u003ccode\u003e90cf131\u003c/code\u003e\u003c/a\u003e Update version to 2.2.0.dev0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/62aaeafe60927b0653b319585cbe4a1a1eb1bc23\"\u003e\u003ccode\u003e62aaeaf\u003c/code\u003e\u003c/a\u003e Update version to 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/3f7d756e26fca03660e6f08927c7cd911e933c78\"\u003e\u003ccode\u003e3f7d756\u003c/code\u003e\u003c/a\u003e Use \u0026quot;--\u0026quot; to disambiguate Git arguments in a few more places; resolves \u003ca href=\"https://redirect.github.com/jimporter/mike/issues/218\"\u003e#218\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/5e6970d65beaf2c92fa1d22dbf524a931a393e8b\"\u003e\u003ccode\u003e5e6970d\u003c/code\u003e\u003c/a\u003e Belatedly update copyright year\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jimporter/mike/commit/9291efbd6961d652c16c000dc1fe4f2f1e19f94c\"\u003e\u003ccode\u003e9291efb\u003c/code\u003e\u003c/a\u003e Update version to 2.2.0.dev0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jimporter/mike/compare/v2.1.1...v2.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.5.0 to 0.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompatibility with MkDocs 1.6 is improved - generated files don't have to have an \u003ccode\u003eabs_src_path\u003c/code\u003e - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThere was a bug: using \u003ccode\u003eedit_uri_template\u003c/code\u003e in MkDocs would prevent \u003ccode\u003eset_edit_path()\u003c/code\u003e from working.\nThis is now fixed - \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/37\"\u003e#37\u003c/a\u003e - thanks to \u003ca href=\"https://github.com/frankkusters\"\u003e\u003ccode\u003e@​frankkusters\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe MkDocs configuration file now can be \u003ccode\u003emkdocs.yaml\u003c/code\u003e, not only \u003ccode\u003emkdocs.yml\u003c/code\u003e. Thanks to \u003ca href=\"https://github.com/mgor\"\u003e\u003ccode\u003e@​mgor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/39\"\u003eoprypin/mkdocs-gen-files#39\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMkDocs 1.4.1 is now the lowest supported version -  \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.9 is now the lowest supported version.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ca href=\"https://oprypin.github.io/mkdocs-gen-files/extras.html#programmatically-generating-the-navigation\"\u003enav generator\u003c/a\u003e can support empty paths - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.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/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/1a822d9e0d376d8ecae95fb961144a5af4887ef1\"\u003e\u003ccode\u003e1a822d9\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003e\u003ccode\u003e7baa032\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/6fd0fe048ebf928763458d8dba1a476ca2196117\"\u003e\u003ccode\u003e6fd0fe0\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-literate-nav` from 0.6.1 to 0.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/releases\"\u003emkdocs-literate-nav's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/6cc020ab973468678fa4420434ce84ee53ea2208?w=1\"\u003eFix compatibility with MkDocs 1.6+\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire at least MkDocs 1.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther refactors, see \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.1...v0.6.2\"\u003ehttps://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.1...v0.6.2\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/oprypin/mkdocs-literate-nav/commit/7423f00fe2c26c879310f76631b8180cb2bb6ace\"\u003e\u003ccode\u003e7423f00\u003c/code\u003e\u003c/a\u003e v0.6.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/285344cc3e328c484deb5d932b722a252336e71b\"\u003e\u003ccode\u003e285344c\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/c39fba6d1d789fb7ab9ee31d75fc2ec5973797c0\"\u003e\u003ccode\u003ec39fba6\u003c/code\u003e\u003c/a\u003e Put more items into TYPE_CHECKING\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/889bcb240e2757f4a2a0efd3a0ef9d58db96427d\"\u003e\u003ccode\u003e889bcb2\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/12f9f79e8ce5d6ee2c934e7787d20d0f055e4c50\"\u003e\u003ccode\u003e12f9f79\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/57210ef5a0e855d7cf49be6e2136e9208493cc13\"\u003e\u003ccode\u003e57210ef\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/6cc020ab973468678fa4420434ce84ee53ea2208\"\u003e\u003ccode\u003e6cc020a\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/9c0564974487df94a62158028fd5e839f6779f68\"\u003e\u003ccode\u003e9c05649\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/07787d5ac634eca808742de2dfafad60f676d90c\"\u003e\u003ccode\u003e07787d5\u003c/code\u003e\u003c/a\u003e Refactor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/1a7b4d74d283cdabe0b625614cf00e299d678c3f\"\u003e\u003ccode\u003e1a7b4d7\u003c/code\u003e\u003c/a\u003e Refactor for type annotations\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.1...v0.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-macros-plugin` from 1.0.5 to 1.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fralau/mkdocs_macros_plugin/releases\"\u003emkdocs-macros-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev.1.3.7 With Test Framework\u003c/h2\u003e\n\u003ch2\u003e1.3.7, 2024-10-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: incompatibility with the d2 module (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/249\"\u003e#249\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.6, 2024-10-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: complete test framework, using pytest and Mkdocs-Test (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/244\"\u003e#244\u003c/a\u003e)\nA number of automated test cases are implemented.\u003c/li\u003e\n\u003cli\u003eChanged: move from setup.py to pyproject.toml (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.0, 2024-09-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: three hooks \u003ccode\u003eregister_variables/macros/filters\u003c/code\u003e to facilitate\ncooperation with other MkDocs plugins.\u003c/li\u003e\n\u003cli\u003eFixed: `define_env() was always required in module (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded: trace the case when no module is found (INFO)\u003c/li\u003e\n\u003cli\u003eImproved documentation, particularly about HTML pages\u003c/li\u003e\n\u003cli\u003eAdded: parameters \u003ccode\u003ej2_comment_start_string\u003c/code\u003e and\n\u003ccode\u003ej2_comment_end_string\u003c/code\u003e to plugin's parameters,\nto specify alternate markers for comments.\u003c/li\u003e\n\u003cli\u003eAdded the multiline parameter \u003ccode\u003eforce_render_paths\u003c/code\u003e in the config file,\nto specify directories or file patterns to be rendered for the case when \u003ccode\u003erender_by_default = false\u003c/code\u003e\n(the \u003ccode\u003erender_macros\u003c/code\u003e parameter in the YAML header of the page\nhas the last word).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.5, 2023-10-31\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: git.short_tag (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded: Mermaid diagrams in the documentation (Readthedocs)\u003c/li\u003e\n\u003cli\u003eFixed: Changelog was no longer displayed (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/186\"\u003e#186\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/fralau/mkdocs-macros-plugin/blob/master/CHANGELOG.md\"\u003emkdocs-macros-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.0, 2025-11-13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: For each push, testing on github for versions Python 3.8 to 3.12\u003c/li\u003e\n\u003cli\u003eFixed: bug in import of packages when not in source dir (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.1, 2025-10-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: support for j2_extensions paramater in config file (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed: missing dependency declaration on \u003ccode\u003erequests\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.0, 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: auto-install of missing pluglet (meaningful error message \u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed: error with yaml dumps (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/258\"\u003e#258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed: detection of Jinja2, to allow title rendering (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/266\"\u003e#266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSmall improvements to documentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.7, 2024-10-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: incompatibility with the d2 module (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/249\"\u003e#249\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.6, 2024-10-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: complete test framework, using pytest and Mkdocs-Test (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/244\"\u003e#244\u003c/a\u003e)\nA number of automated test cases are implemented.\u003c/li\u003e\n\u003cli\u003eChanged: move from setup.py to pyproject.toml (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.0, 2024-09-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: three hooks \u003ccode\u003eregister_variables/macros/filters\u003c/code\u003e to facilitate\ncooperation with other MkDocs plugins.\u003c/li\u003e\n\u003cli\u003eFixed: `define_env() was always required in module (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded: trace the case when no module is found (INFO)\u003c/li\u003e\n\u003cli\u003eImproved documentation, particularly about HTML pages\u003c/li\u003e\n\u003cli\u003eAdded: parameters \u003ccode\u003ej2_comment_start_string\u003c/code\u003e and\n\u003ccode\u003ej2_comment_end_string\u003c/code\u003e to plugin's parameters,\nto specify alternate markers for comments.\u003c/li\u003e\n\u003cli\u003eAdded the multiline parameter \u003ccode\u003eforce_render_paths\u003c/code\u003e in the config file,\nto specify directories or file patterns to be rendered for the case when \u003ccode\u003erender_by_default = false\u003c/code\u003e\n(the \u003ccode\u003erender_macros\u003c/code\u003e parameter in the YAML header of the page\nhas the last word).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/0536f4da1dc643e1fa1f0cc90e71512ada67dc04\"\u003e\u003ccode\u003e0536f4d\u003c/code\u003e\u003c/a\u003e Fix type hint for compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/d9a6bc3aac5b12b86f9e2be7af18e1e9178287f6\"\u003e\u003ccode\u003ed9a6bc3\u003c/code\u003e\u003c/a\u003e Require mkdocs-test\u0026gt;=0.6.0 (compatibility with Python 3.8 and 3.9)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/bcaa72db2820d60822ffba15e87c75669abc7b92\"\u003e\u003ccode\u003ebcaa72d\u003c/code\u003e\u003c/a\u003e Make last minute corrections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/356fc2a5b55d1897a2f2c47856d52b10cff4611c\"\u003e\u003ccode\u003e356fc2a\u003c/code\u003e\u003c/a\u003e Prepare for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/aaf16bdcb9dfcb9c6ea9b6567ea4af7f8c178185\"\u003e\u003ccode\u003eaaf16bd\u003c/code\u003e\u003c/a\u003e Limit testing to 3.10 up (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/ba5356c0c263355556aa82dad0fbfde3cce4bc4d\"\u003e\u003ccode\u003eba5356c\u003c/code\u003e\u003c/a\u003e Use proper exit for pytest if Python \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/6c796600bc0886696ce9b76b84354d7e2bc1b6fa\"\u003e\u003ccode\u003e6c79660\u003c/code\u003e\u003c/a\u003e Skip test_modules.py if Python version \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cec7440d46589b303d741a5e2df0a240c25b9bdb\"\u003e\u003ccode\u003ecec7440\u003c/code\u003e\u003c/a\u003e Test installation of d2 in a cross-platform way (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/492759c5ab3d05f7c55ec62ffdf9573b715ac6ed\"\u003e\u003ccode\u003e492759c\u003c/code\u003e\u003c/a\u003e Update with changes from local repo (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cc5416834a07ffd2ba1fe3d917a701ac6e9c98ad\"\u003e\u003ccode\u003ecc54168\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:fralau/mkdocs_macros_plugin\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fralau/mkdocs_macros_plugin/compare/v1.0.5...v1.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.5.25 to 9.7.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.2\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to \u003ccode\u003emkdocs build\u003c/code\u003e about impending MkDocs 2.0 incompatibility (doesn't affect strict mode)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.1\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is now in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features. Going forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the Insiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNote on deprecated plugins\u003c/strong\u003e: The [projects] and [typeset] plugins are included in this release, but must be considered deprecated. Both plugins proved unsustainable to maintain and represent architectural dead ends. They are provided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eChanges\u003c/strong\u003e:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.2 (2026-02-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to 'mkdocs build' about impending MkDocs 2.0 incompatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pinned blog posts and author profiles\u003c/li\u003e\n\u003cli\u003eAdded support for customizing pagination for blog index pages\u003c/li\u003e\n\u003cli\u003eAdded support for customizing blog category sort order\u003c/li\u003e\n\u003cli\u003eAdded support for staying on page when switching languages\u003c/li\u003e\n\u003cli\u003eAdded support for disabling tags in table of contents\u003c/li\u003e\n\u003cli\u003eAdded support for nested tags and shadow tags\u003c/li\u003e\n\u003cli\u003eAdded support for footnote tooltips\u003c/li\u003e\n\u003cli\u003eAdded support for instant previews\u003c/li\u003e\n\u003cli\u003eAdded support for instant prefetching\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card layouts\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card background images\u003c/li\u003e\n\u003cli\u003eAdded support for selectable rangs in code blocks\u003c/li\u003e\n\u003cli\u003eAdded support for custom selectors for code annotations\u003c/li\u003e\n\u003cli\u003eAdded support for configurable log level in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for processing of external links in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for automatic image optimization via optimize plugin\u003c/li\u003e\n\u003cli\u003eAdded support for navigation paths (breadcrumbs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/e21a119e38f7bca184e469eaeefa3d5535e5022b\"\u003e\u003ccode\u003ee21a119\u003c/code\u003e\u003c/a\u003e Updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/d5654b500a7021625d3c78f59842805c45e7b65a\"\u003e\u003ccode\u003ed5654b5\u003c/code\u003e\u003c/a\u003e Prepare 9.7.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/b18af2f74a98e0d54f7f11b4e029d7ea29166df3\"\u003e\u003ccode\u003eb18af2f\u003c/code\u003e\u003c/a\u003e Opened up version ranges in optional dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/39cdfbd87c80079cd06a6d2a953cd53f531db61d\"\u003e\u003ccode\u003e39cdfbd\u003c/code\u003e\u003c/a\u003e Added social card for blog post\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/09ee7b1913eab1988ff3a81982c39634915336e1\"\u003e\u003ccode\u003e09ee7b1\u003c/code\u003e\u003c/a\u003e Added blog post on MkDocs 2.0 (\u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8564\"\u003e#8564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/0d11a2d01174a0ab3bec97300c4432da44128253\"\u003e\u003ccode\u003e0d11a2d\u003c/code\u003e\u003c/a\u003e Documentation (\u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8560\"\u003e#8560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/8fc61b5cb00845825179d6fd3e331c789f83187b\"\u003e\u003ccode\u003e8fc61b5\u003c/code\u003e\u003c/a\u003e Updated dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/3f0eaca8da7e06db5bbb8ca41febb78459baf650\"\u003e\u003ccode\u003e3f0eaca\u003c/code\u003e\u003c/a\u003e Documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/eaba2dc24f196ecbf8e9aa87f8982be4e154920b\"\u003e\u003ccode\u003eeaba2dc\u003c/code\u003e\u003c/a\u003e Re-enable publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/7e236f6866b73aa080cd4d209752f6440bf67440\"\u003e\u003ccode\u003e7e236f6\u003c/code\u003e\u003c/a\u003e Temporarily disable publishing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.5.25...9.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `frequenz-repo-config[lib]` from 0.9.2 to 0.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/releases\"\u003efrequenz-repo-config[lib]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.0\u003c/h2\u003e\n\u003ch1\u003eFrequenz Repository Configuration Release Notes\u003c/h1\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis release adds a new workflow for Dependabot auto-merge and updates mkdocstrings to v2.\u003c/p\u003e\n\u003ch2\u003eUpgrading\u003c/h2\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cp\u003eAll upgrading should be done via the migration script or regenerating the templates.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecurl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.14.0/cookiecutter/migrate.py | python3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eBut you might still need to adapt your code, just have a look at the script output for further instructions.\u003c/p\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emkdocsstrings-python\u003c/code\u003e v2 is now supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDependencies have been updated.\u003c/li\u003e\n\u003cli\u003eNew warning ignores for protobuf gencode versions in pytest.\u003c/li\u003e\n\u003cli\u003eAdded Dependabot auto-merge workflow using \u003ccode\u003efrequenz-floss/dependabot-auto-approve\u003c/code\u003e action.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emkdocstrings: Move \u003ccode\u003epaths\u003c/code\u003e key to the right section in \u003ccode\u003emkdocs.yml\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix invalid YAML syntax in Dependabot workflow template.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump types-pyyaml from 6.0.12.20250402 to 6.0.12.20250516 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/410\"\u003efrequenz-floss/frequenz-repo-config-python#410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the patch group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/408\"\u003efrequenz-floss/frequenz-repo-config-python#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the minor group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/409\"\u003efrequenz-floss/frequenz-repo-config-python#409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove filtering of warnings in pytest by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/411\"\u003efrequenz-floss/frequenz-repo-config-python#411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix mkdocsstrings config by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/412\"\u003efrequenz-floss/frequenz-repo-config-python#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge v0.13.x into v0.x.x by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/420\"\u003efrequenz-floss/frequenz-repo-config-python#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the patch group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/424\"\u003efrequenz-floss/frequenz-repo-config-python#424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the minor group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/423\"\u003efrequenz-floss/frequenz-repo-config-python#423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate templates dependencies by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/431\"\u003efrequenz-floss/frequenz-repo-config-python#431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump types-markdown from 3.8.0.20250415 to 3.8.0.20250708 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/430\"\u003efrequenz-floss/frequenz-repo-config-python#430\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mypy from 1.16.1 to 1.17.1 in the minor group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/428\"\u003efrequenz-floss/frequenz-repo-config-python#428\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the mkdocstrings group across 1 directory with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/432\"\u003efrequenz-floss/frequenz-repo-config-python#432\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/frequenz-floss/frequenz-repo-config-python/blob/v0.x.x/RELEASE_NOTES.md\"\u003efrequenz-repo-config[lib]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFrequenz Repository Configuration Release Notes\u003c/h1\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis release migrates lightweight GitHub Actions workflow jobs to use the new cost-effective \u003ccode\u003eubuntu-slim\u003c/code\u003e runner.\nIt also updates cookiecutter pyproject license metadata to SPDX expressions to avoid setuptools deprecation warnings.\nThe auto-dependabot workflow now uses a GitHub App installation token instead of \u003ccode\u003eGITHUB_TOKEN\u003c/code\u003e to fix merge queue and auto-merge failures.\u003c/p\u003e\n\u003ch2\u003eUpgrading\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cp\u003eAll upgrading should be done via the migration script or regenerating the templates.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecurl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.14.0/cookiecutter/migrate.py | python3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eBut you might still need to adapt your code:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMigrated lightweight workflow jobs to use the new \u003ccode\u003eubuntu-slim\u003c/code\u003e runner for cost savings.\nThe following jobs now use \u003ccode\u003eubuntu-slim\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eci.yaml\u003c/code\u003e: \u003ccode\u003eprotolint\u003c/code\u003e, \u003ccode\u003enox-all\u003c/code\u003e, \u003ccode\u003etest-installation-all\u003c/code\u003e, \u003ccode\u003ecreate-github-release\u003c/code\u003e, \u003ccode\u003epublish-to-pypi\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eci-pr.yaml\u003c/code\u003e: \u003ccode\u003eprotolint\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eauto-dependabot.yaml\u003c/code\u003e: \u003ccode\u003eauto-merge\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erelease-notes-check.yml\u003c/code\u003e: \u003ccode\u003echeck-release-notes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edco-merge-queue.yml\u003c/code\u003e: \u003ccode\u003eDCO\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elabeler.yml\u003c/code\u003e: \u003ccode\u003eLabel\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ca href=\"https://github.com/pjknkda/flake8-datetimez\"\u003e\u003ccode\u003eflake8-datetimez\u003c/code\u003e\u003c/a\u003e plugin to the \u003ccode\u003eflake8\u003c/code\u003e session. This plugin prevents accidental use of naive \u003ccode\u003edatetime\u003c/code\u003e objects by flagging calls that create or return datetimes without timezone information.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe CI workflow now uses a simpler matrix.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched \u003ccode\u003eproject.license\u003c/code\u003e to SPDX expressions and added \u003ccode\u003eproject.license-files\u003c/code\u003e. This removes deprecated setuptools license metadata and avoids build warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/a72bd53788be72e52e392ba037d1846e9af9bdb0\"\u003e\u003ccode\u003ea72bd53\u003c/code\u003e\u003c/a\u003e Update mypy-protobuf requirement from \u0026lt;4,\u0026gt;=3.0.0 to \u0026gt;=3.0.0,\u0026lt;5 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/489\"\u003e#489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/10341d61167efc0469c829a7e5159f4fb98db43b\"\u003e\u003ccode\u003e10341d6\u003c/code\u003e\u003c/a\u003e template: Bump protobuf and grpcio to latest versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/af4476785f83336c08114d344820f3c5e47819fa\"\u003e\u003ccode\u003eaf44767\u003c/code\u003e\u003c/a\u003e Update mypy-protobuf requirement from \u0026lt;4,\u0026gt;=3.0.0 to \u0026gt;=3.0.0,\u0026lt;5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/8a4e067b5d713b7667fa0e2fb00328de43bf2355\"\u003e\u003ccode\u003e8a4e067\u003c/code\u003e\u003c/a\u003e Prepare for release v0.14.0 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/490\"\u003e#490\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/73dc4ef502a49f798a6ad672edd6b6b5478851ec\"\u003e\u003ccode\u003e73dc4ef\u003c/code\u003e\u003c/a\u003e Prepare for release v0.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/3d86e084ef981c8f5c8b7256918866bd22bbc069\"\u003e\u003ccode\u003e3d86e08\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/5894e50f24b3fcd742d8d44d2c370ad9a43d734f\"\u003e\u003ccode\u003e5894e50\u003c/code\u003e\u003c/a\u003e Bump pydoclint from 0.7.3 to 0.8.3 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/4a81cbbb8281d46e23c58112bdd202ace0861c85\"\u003e\u003ccode\u003e4a81cbb\u003c/code\u003e\u003c/a\u003e Bump frequenz-floss/gh-action-nox from 1.0.1 to 1.1.0 in the compatible group...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/41b3a2cb1a54c14ca1a4bc1bb983b17bee5580b1\"\u003e\u003ccode\u003e41b3a2c\u003c/code\u003e\u003c/a\u003e Bump pytest from 9.0.1 to 9.0.2 in the patch group (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/487\"\u003e#487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/c2bbc77892b57010335680effe03cb368dc54b75\"\u003e\u003ccode\u003ec2bbc77\u003c/code\u003e\u003c/a\u003e Bump the minor group with 7 updates (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/compare/v0.9.2...v0.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.10.0 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.10.0...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-markdown` from 3.6.0.20240316 to 3.10.2.20260211\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 `frequenz-repo-config[extra-lint-examples]` from 0.9.2 to 0.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/releases\"\u003efrequenz-repo-config[extra-lint-examples]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.0\u003c/h2\u003e\n\u003ch1\u003eFrequenz Repository Configuration Release Notes\u003c/h1\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis release adds a new workflow for Dependabot auto-merge and updates mkdocstrings to v2.\u003c/p\u003e\n\u003ch2\u003eUpgrading\u003c/h2\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cp\u003eAll upgrading should be done via the migration script or regenerating the templates.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecurl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.14.0/cookiecutter/migrate.py | python3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eBut you might still need to adapt your code, just have a look at the script output for further instructions.\u003c/p\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emkdocsstrings-python\u003c/code\u003e v2 is now supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDependencies have been updated.\u003c/li\u003e\n\u003cli\u003eNew warning ignores for protobuf gencode versions in pytest.\u003c/li\u003e\n\u003cli\u003eAdded Dependabot auto-merge workflow using \u003ccode\u003efrequenz-floss/dependabot-auto-approve\u003c/code\u003e action.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emkdocstrings: Move \u003ccode\u003epaths\u003c/code\u003e key to the right section in \u003ccode\u003emkdocs.yml\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix invalid YAML syntax in Dependabot workflow template.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump types-pyyaml from 6.0.12.20250402 to 6.0.12.20250516 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"h...\n\n_Description has been truncated_","html_url":"https://github.com/llucax/frequenz-client-microgrid-python/pull/16","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/llucax%2Ffrequenz-client-microgrid-python/issues/16","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/16/packages"}},{"old_version":"0.5.0","new_version":"0.6.0","update_type":"minor","path":null,"pr_created_at":"2026-02-13T02:23:17.000Z","version_change":"0.5.0 → 0.6.0","issue":{"uuid":"3934995507","node_id":"PR_kwDOEPOwMs7Dcf_f","number":1541,"state":"closed","title":"build(deps-dev): bump mkdocs-gen-files from 0.5.0 to 0.6.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-13T02:32:20.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-13T02:23:17.000Z","updated_at":"2026-02-13T02:33:36.000Z","time_to_close":543,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"mkdocs-gen-files","old_version":"0.5.0","new_version":"0.6.0","repository_url":"https://github.com/oprypin/mkdocs-gen-files"}],"path":null,"ecosystem":"pip"},"body":"Bumps [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) from 0.5.0 to 0.6.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompatibility with MkDocs 1.6 is improved - generated files don't have to have an \u003ccode\u003eabs_src_path\u003c/code\u003e - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThere was a bug: using \u003ccode\u003eedit_uri_template\u003c/code\u003e in MkDocs would prevent \u003ccode\u003eset_edit_path()\u003c/code\u003e from working.\nThis is now fixed - \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/37\"\u003e#37\u003c/a\u003e - thanks to \u003ca href=\"https://github.com/frankkusters\"\u003e\u003ccode\u003e@​frankkusters\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe MkDocs configuration file now can be \u003ccode\u003emkdocs.yaml\u003c/code\u003e, not only \u003ccode\u003emkdocs.yml\u003c/code\u003e. Thanks to \u003ca href=\"https://github.com/mgor\"\u003e\u003ccode\u003e@​mgor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/39\"\u003eoprypin/mkdocs-gen-files#39\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMkDocs 1.4.1 is now the lowest supported version -  \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.9 is now the lowest supported version.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ca href=\"https://oprypin.github.io/mkdocs-gen-files/extras.html#programmatically-generating-the-navigation\"\u003enav generator\u003c/a\u003e can support empty paths - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.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/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/1a822d9e0d376d8ecae95fb961144a5af4887ef1\"\u003e\u003ccode\u003e1a822d9\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003e\u003ccode\u003e7baa032\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/6fd0fe048ebf928763458d8dba1a476ca2196117\"\u003e\u003ccode\u003e6fd0fe0\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mkdocs-gen-files\u0026package-manager=pip\u0026previous-version=0.5.0\u0026new-version=0.6.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/collerek/ormar/pull/1541","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/collerek%2Formar/issues/1541","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1541/packages"}},{"old_version":"0.5.0","new_version":"0.6.0","update_type":"minor","path":null,"pr_created_at":"2026-02-10T14:21:32.000Z","version_change":"0.5.0 → 0.6.0","issue":{"uuid":"3921745888","node_id":"PR_kwDOOdxeKs7CwbeO","number":6,"state":"open","title":"Bump the optional group with 14 updates","user":"dependabot[bot]","labels":["part:tooling"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-10T14:21:32.000Z","updated_at":"2026-02-10T14:21:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"optional","update_count":14,"packages":[{"name":"flake8","old_version":"7.1.1","new_version":"7.3.0","repository_url":"https://github.com/pycqa/flake8"},{"name":"flake8-pyproject","old_version":"1.2.3","new_version":"1.2.4","repository_url":"https://github.com/john-hen/Flake8-pyproject"},{"name":"pydoclint","old_version":"0.6.0","new_version":"0.8.3","repository_url":"https://github.com/jsh9/pydoclint"},{"name":"markdown","old_version":"3.7","new_version":"3.10.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-gen-files","old_version":"0.5.0","new_version":"0.6.0","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-literate-nav","old_version":"0.6.1","new_version":"0.6.2","repository_url":"https://github.com/oprypin/mkdocs-literate-nav"},{"name":"mkdocs-macros-plugin","old_version":"1.3.7","new_version":"1.5.0","repository_url":"https://github.com/fralau/mkdocs_macros_plugin"},{"name":"mkdocs-material","old_version":"9.6.2","new_version":"9.7.1","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"frequenz-repo-config","old_version":"0.12.3","new_version":"0.14.0"},{"name":"mypy","old_version":"1.9.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"types-markdown","old_version":"3.7.0.20241204","new_version":"3.10.0.20251106","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"frequenz-repo-config","old_version":"0.12.3","new_version":"0.14.0"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"async-solipsism","old_version":"0.7","new_version":"0.9","repository_url":"https://github.com/bmerry/async-solipsism"}],"path":null,"ecosystem":"pip"},"body":"Bumps the optional group with 14 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [flake8](https://github.com/pycqa/flake8) | `7.1.1` | `7.3.0` |\n| [flake8-pyproject](https://github.com/john-hen/Flake8-pyproject) | `1.2.3` | `1.2.4` |\n| [pydoclint](https://github.com/jsh9/pydoclint) | `0.6.0` | `0.8.3` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.7` | `3.10.2` |\n| [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) | `0.5.0` | `0.6.0` |\n| [mkdocs-literate-nav](https://github.com/oprypin/mkdocs-literate-nav) | `0.6.1` | `0.6.2` |\n| [mkdocs-macros-plugin](https://github.com/fralau/mkdocs_macros_plugin) | `1.3.7` | `1.5.0` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.2` | `9.7.1` |\n| [frequenz-repo-config[lib]](https://github.com/frequenz-floss/frequenz-repo-config-python) | `0.12.3` | `0.14.0` |\n| [mypy](https://github.com/python/mypy) | `1.9.0` | `1.19.1` |\n| [types-markdown](https://github.com/typeshed-internal/stub_uploader) | `3.7.0.20241204` | `3.10.0.20251106` |\n| [frequenz-repo-config[extra-lint-examples]](https://github.com/frequenz-floss/frequenz-repo-config-python) | `0.12.3` | `0.14.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [async-solipsism](https://github.com/bmerry/async-solipsism) | `0.7` | `0.9` |\n\nUpdates `flake8` from 7.1.1 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/c48217e1fc006c2dddd14df54e83b67da15de5cd\"\u003e\u003ccode\u003ec48217e\u003c/code\u003e\u003c/a\u003e Release 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/f9e0f33281d5bb892cae2c674ac398439d99c732\"\u003e\u003ccode\u003ef9e0f33\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1986\"\u003e#1986\u003c/a\u003e from PyCQA/document-f542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6bcdb628597fa2d03494965089ff87a492ffc1e9\"\u003e\u003ccode\u003e6bcdb62\u003c/code\u003e\u003c/a\u003e document F542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/70a15b8890d5bdf8c449ebb1b5259bd0140cc16b\"\u003e\u003ccode\u003e70a15b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1985\"\u003e#1985\u003c/a\u003e from PyCQA/upgrade-deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/4941a3e32e54488698ecbc23993bfeb2a60c0fc5\"\u003e\u003ccode\u003e4941a3e\u003c/code\u003e\u003c/a\u003e upgrade pyflakes / pycodestyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/23e4005c5501999c29e1e3774de7ed18d1e4e22d\"\u003e\u003ccode\u003e23e4005\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1983\"\u003e#1983\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/019424b80d3d7d5d8a2a1638f5877080546e3f46\"\u003e\u003ccode\u003e019424b\u003c/code\u003e\u003c/a\u003e add support for t-strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6b6f3d5fefecc994a06f425c18c3cddc9b71e4a4\"\u003e\u003ccode\u003e6b6f3d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1980\"\u003e#1980\u003c/a\u003e from PyCQA/asottile-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/8dfa6695b4fb1e1401b357367a0a71037d29f6aa\"\u003e\u003ccode\u003e8dfa669\u003c/code\u003e\u003c/a\u003e add rtd sphinx config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/ce3411118382d9332feb2749c8f417d10bfa2584\"\u003e\u003ccode\u003ece34111\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1976\"\u003e#1976\u003c/a\u003e from PyCQA/document-f824\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pycqa/flake8/compare/7.1.1...7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8-pyproject` from 1.2.3 to 1.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/john-hen/Flake8-pyproject/releases\"\u003eflake8-pyproject's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixes typo in name of meta variable in \u003ccode\u003e--toml-config\u003c/code\u003e help message. (\u003ca href=\"https://redirect.github.com/john-hen/Flake8-pyproject/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRegisters GitHub repo as trusted publisher for PyPI releases. (\u003ca href=\"https://redirect.github.com/john-hen/Flake8-pyproject/issues/38\"\u003e#38\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/john-hen/Flake8-pyproject/commit/3c516a9319beee324f9a200dfb4e08677de4a63f\"\u003e\u003ccode\u003e3c516a9\u003c/code\u003e\u003c/a\u003e Bumped version to 1.2.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/df70f19558f784eb0cb7988440735d56f53f3cae\"\u003e\u003ccode\u003edf70f19\u003c/code\u003e\u003c/a\u003e Added GitHub workflow for releases on PyPI.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/d46e99c695149cd860a918c354de0d1d89166b7e\"\u003e\u003ccode\u003ed46e99c\u003c/code\u003e\u003c/a\u003e Only run scheduled test weekly instead of nightly.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/da0b9ed7d586490aff8503e38f2d481c1706bdee\"\u003e\u003ccode\u003eda0b9ed\u003c/code\u003e\u003c/a\u003e Added link to GitHub releases as a project URL.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/8e4b87fbe7291687f41b11180c8b3ae486ac538e\"\u003e\u003ccode\u003e8e4b87f\u003c/code\u003e\u003c/a\u003e Cosmetic changes to code format of dev tools in \u003ccode\u003etools\u003c/code\u003e folder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/4227bd4a987b66a9ab46f0b4e04b098e388598e7\"\u003e\u003ccode\u003e4227bd4\u003c/code\u003e\u003c/a\u003e Use longer names for dev tools in \u003ccode\u003etools\u003c/code\u003e folder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/3866f48fbcd63231622f54e848268273605be1a8\"\u003e\u003ccode\u003e3866f48\u003c/code\u003e\u003c/a\u003e Mention early on that we need to be called in \u003ccode\u003epyproject.toml\u003c/code\u003e folder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/40bf63915dabd85a53a7d06c24232a3b278c4b25\"\u003e\u003ccode\u003e40bf639\u003c/code\u003e\u003c/a\u003e Removed configuration and documentation of pre-commit hook.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/9df7abb5a4b1b25f032c7d3f06fd3f074424c471\"\u003e\u003ccode\u003e9df7abb\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/2c230622c7e81e3f2f6cd632272c92fd6bdda83b\"\u003e\u003ccode\u003e2c23062\u003c/code\u003e\u003c/a\u003e Fixed reporting of code coverage.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/john-hen/Flake8-pyproject/compare/1.2.3...1.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydoclint` from 0.6.0 to 0.8.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jsh9/pydoclint/releases\"\u003epydoclint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.8.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix baseline renegeration bug by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/275\"\u003ejsh9/pydoclint#275\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd config option to allow omitting stars in varargs by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/276\"\u003ejsh9/pydoclint#276\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/277\"\u003ejsh9/pydoclint#277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.2...0.8.3\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.2...0.8.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.8.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ability to partially match violation codes by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/272\"\u003ejsh9/pydoclint#272\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix how multiple \u003cstrong\u003einit\u003c/strong\u003e() are recognized by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/273\"\u003ejsh9/pydoclint#273\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.1...0.8.2\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.1...0.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.8.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChange logic to detect docstring style mismatch by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/271\"\u003ejsh9/pydoclint#271\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.0...0.8.1\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.0...0.8.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.8.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd inline violation suppression for native mode by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/270\"\u003ejsh9/pydoclint#270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.6...0.8.0\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.6...0.8.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.7.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefresh linters \u0026amp; formatters by \u003ca href=\"https://github.com/jsh9\"\u003e\u003ccode\u003e@​jsh9\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/269\"\u003ejsh9/pydoclint#269\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.5...0.7.6\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.5...0.7.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.7.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003e@property\u003c/code\u003e + \u003ccode\u003e@abstractmethod\u003c/code\u003e without a Returns: section by \u003ca href=\"https://github.com/barometz\"\u003e\u003ccode\u003e@​barometz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/261\"\u003ejsh9/pydoclint#261\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/barometz\"\u003e\u003ccode\u003e@​barometz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jsh9/pydoclint/pull/261\"\u003ejsh9/pydoclint#261\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.4...0.7.5\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.4...0.7.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.7.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jsh9/pydoclint/blob/main/CHANGELOG.md\"\u003epydoclint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.8.3] - 2025-11-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eA new config option \u003ccode\u003e--omit-stars-when-documenting-varargs\u003c/code\u003e (shortform:\n\u003ccode\u003e-oswdv\u003c/code\u003e) so docstrings may describe varargs without the leading \u003ccode\u003e*\u003c/code\u003e\ncharacters (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/268\"\u003ejsh9/pydoclint#268\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFixed\n\u003cul\u003e\n\u003cli\u003eA bug where \u003ccode\u003e--auto-regenerate-baseline\u003c/code\u003e removes entries of files that have\nnot yet been fixed (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/274\"\u003ejsh9/pydoclint#274\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.2...0.8.3\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.2...0.8.3\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.8.2] - 2025-11-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eAbility to partially match violation codes in inline \u003ccode\u003enoqa\u003c/code\u003e in the native\nmode (which \u003cem\u003eflake8\u003c/em\u003e already supports)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFixed\n\u003cul\u003e\n\u003cli\u003eA bug: when there are more than one \u003ccode\u003e__init__()\u003c/code\u003e in a class (overloaded),\nthe first \u003ccode\u003e__init__()\u003c/code\u003e is incorrectly recognized as the \u0026quot;right\u0026quot; one. (The\nlast \u003ccode\u003e__init__()\u003c/code\u003e should be considered the right one.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.1...0.8.2\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.1...0.8.2\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.8.1] - 2025-11-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged\n\u003cul\u003e\n\u003cli\u003eThe logic to detect docstring style mismatches, fixing a false positive\ncase where non-Sphinx style docstrings are detected as Sphinx style\n(because there are some rST keywords in them)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.8.0...0.8.1\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.8.0...0.8.1\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.8.0] - 2025-11-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eNew functionality: \u003cem\u003epydoclint\u003c/em\u003e native mode can parse \u0026quot;noqa\u0026quot; comments and\nthus users can suppress violations in the native mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.6...0.8.0\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.6...0.8.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.7.6] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged\n\u003cul\u003e\n\u003cli\u003eUpdated linter and auto-formatter configurations\u003c/li\u003e\n\u003cli\u003eMade a lot of changes to fix code style; some logic was also updated per\nthe suggestions of linters\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFull diff\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.7.5...0.7.6\"\u003ehttps://github.com/jsh9/pydoclint/compare/0.7.5...0.7.6\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/98bb10c4e73a050e31471409df8edfaeb88befb8\"\u003e\u003ccode\u003e98bb10c\u003c/code\u003e\u003c/a\u003e Add config option to allow omitting stars in varargs (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/277\"\u003e#277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/c37407d03df27b4c37b31e697fd474377c3c4efc\"\u003e\u003ccode\u003ec37407d\u003c/code\u003e\u003c/a\u003e Fix baseline renegeration bug (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/276\"\u003e#276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/3386cd2ad39784792a0d39d942dd4b26960c2a27\"\u003e\u003ccode\u003e3386cd2\u003c/code\u003e\u003c/a\u003e Fix baseline renegeration bug (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/275\"\u003e#275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/8c1081806da276917ac686a12f0c435414955da0\"\u003e\u003ccode\u003e8c10818\u003c/code\u003e\u003c/a\u003e Fix how multiple \u003cstrong\u003einit\u003c/strong\u003e() are recognized (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/273\"\u003e#273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/51435e3714765f9d4b220c868ab185670f3bb14b\"\u003e\u003ccode\u003e51435e3\u003c/code\u003e\u003c/a\u003e Add ability to partially match violation codes (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/e361239034992fbceac83994e47a40a5e7ecf3ea\"\u003e\u003ccode\u003ee361239\u003c/code\u003e\u003c/a\u003e Change logic to detect docstring style mismatch (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/271\"\u003e#271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/bf4c4021dccf832777452e05e94f98a36c59636b\"\u003e\u003ccode\u003ebf4c402\u003c/code\u003e\u003c/a\u003e Add hyperlink\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/a7585273e2b3c8e84a1883d33a168519947c807f\"\u003e\u003ccode\u003ea758527\u003c/code\u003e\u003c/a\u003e Update --check-style-mismatch explanations in config_options.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/e8ffd8988fe57ce4dc8a0625c3281b24ca396240\"\u003e\u003ccode\u003ee8ffd89\u003c/code\u003e\u003c/a\u003e Add inline violation suppression for native mode (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/270\"\u003e#270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsh9/pydoclint/commit/0a9ad0c159fe5ced98dbbcd3b850a8850ed009b7\"\u003e\u003ccode\u003e0a9ad0c\u003c/code\u003e\u003c/a\u003e Refresh linters \u0026amp; formatters (\u003ca href=\"https://redirect.github.com/jsh9/pydoclint/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jsh9/pydoclint/compare/0.6.0...0.8.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markdown` from 3.7 to 3.10.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a regression related to comment handling (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1590\"\u003e#1590\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMore reliable fix for \u003ccode\u003e\u0026lt;/\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1593\"\u003e#1593\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.10.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.9.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.10.2] - 2026-02-09\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a regression related to comment handling (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1590\"\u003e#1590\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMore reliable fix for \u003ccode\u003e\u0026lt;/\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1593\"\u003e#1593\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.1] - 2026-01-21\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/e7a0efb3a7c36d6b8005403122705662bc17c904\"\u003e\u003ccode\u003ee7a0efb\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/630183336bda57c258becc3ed229105481876a7e\"\u003e\u003ccode\u003e6301833\u003c/code\u003e\u003c/a\u003e Document HTML sanitation policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/7f29f1a69d236f5bb11645c2fa03fcf701487c8c\"\u003e\u003ccode\u003e7f29f1a\u003c/code\u003e\u003c/a\u003e More reliable fix for \u003ccode\u003e\u0026lt;/\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c4386475a6b6daea43b7d7717add4271adc9a3c1\"\u003e\u003ccode\u003ec438647\u003c/code\u003e\u003c/a\u003e Fix regression of special comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/e5fa5b86e8ec380cbc520cfc637d72c779e5c601\"\u003e\u003ccode\u003ee5fa5b8\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/f9253495f5d9919f2fdd5e147832b5fc21330f65\"\u003e\u003ccode\u003ef925349\u003c/code\u003e\u003c/a\u003e More HTML fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/9933a0a4699f3dea91f46528a2bf54863f531c08\"\u003e\u003ccode\u003e9933a0a\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Allow reference links with backticks\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/07dfa4eb43f7a2ab3181b4f842a960a03a6c1221\"\u003e\u003ccode\u003e07dfa4e\u003c/code\u003e\u003c/a\u003e Allow reference links with backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/fb6b27a6ff90980b5bcb0cd51528a7c9dc3a93ca\"\u003e\u003ccode\u003efb6b27a\u003c/code\u003e\u003c/a\u003e Fix infinite loop when text contains multiple unclosed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/89112c293f7b399ae8808f3a06306f46601e9684\"\u003e\u003ccode\u003e89112c2\u003c/code\u003e\u003c/a\u003e Make the docs build successfully with mkdocstrings-python 2.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.7...3.10.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.5.0 to 0.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompatibility with MkDocs 1.6 is improved - generated files don't have to have an \u003ccode\u003eabs_src_path\u003c/code\u003e - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThere was a bug: using \u003ccode\u003eedit_uri_template\u003c/code\u003e in MkDocs would prevent \u003ccode\u003eset_edit_path()\u003c/code\u003e from working.\nThis is now fixed - \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/37\"\u003e#37\u003c/a\u003e - thanks to \u003ca href=\"https://github.com/frankkusters\"\u003e\u003ccode\u003e@​frankkusters\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe MkDocs configuration file now can be \u003ccode\u003emkdocs.yaml\u003c/code\u003e, not only \u003ccode\u003emkdocs.yml\u003c/code\u003e. Thanks to \u003ca href=\"https://github.com/mgor\"\u003e\u003ccode\u003e@​mgor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/39\"\u003eoprypin/mkdocs-gen-files#39\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMkDocs 1.4.1 is now the lowest supported version -  \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.9 is now the lowest supported version.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ca href=\"https://oprypin.github.io/mkdocs-gen-files/extras.html#programmatically-generating-the-navigation\"\u003enav generator\u003c/a\u003e can support empty paths - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.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/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/1a822d9e0d376d8ecae95fb961144a5af4887ef1\"\u003e\u003ccode\u003e1a822d9\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003e\u003ccode\u003e7baa032\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/6fd0fe048ebf928763458d8dba1a476ca2196117\"\u003e\u003ccode\u003e6fd0fe0\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-literate-nav` from 0.6.1 to 0.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/releases\"\u003emkdocs-literate-nav's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/6cc020ab973468678fa4420434ce84ee53ea2208?w=1\"\u003eFix compatibility with MkDocs 1.6+\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire at least MkDocs 1.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther refactors, see \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.1...v0.6.2\"\u003ehttps://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.1...v0.6.2\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/oprypin/mkdocs-literate-nav/commit/7423f00fe2c26c879310f76631b8180cb2bb6ace\"\u003e\u003ccode\u003e7423f00\u003c/code\u003e\u003c/a\u003e v0.6.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/285344cc3e328c484deb5d932b722a252336e71b\"\u003e\u003ccode\u003e285344c\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/c39fba6d1d789fb7ab9ee31d75fc2ec5973797c0\"\u003e\u003ccode\u003ec39fba6\u003c/code\u003e\u003c/a\u003e Put more items into TYPE_CHECKING\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/889bcb240e2757f4a2a0efd3a0ef9d58db96427d\"\u003e\u003ccode\u003e889bcb2\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/12f9f79e8ce5d6ee2c934e7787d20d0f055e4c50\"\u003e\u003ccode\u003e12f9f79\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/57210ef5a0e855d7cf49be6e2136e9208493cc13\"\u003e\u003ccode\u003e57210ef\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/6cc020ab973468678fa4420434ce84ee53ea2208\"\u003e\u003ccode\u003e6cc020a\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/9c0564974487df94a62158028fd5e839f6779f68\"\u003e\u003ccode\u003e9c05649\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/07787d5ac634eca808742de2dfafad60f676d90c\"\u003e\u003ccode\u003e07787d5\u003c/code\u003e\u003c/a\u003e Refactor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/commit/1a7b4d74d283cdabe0b625614cf00e299d678c3f\"\u003e\u003ccode\u003e1a7b4d7\u003c/code\u003e\u003c/a\u003e Refactor for type annotations\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.1...v0.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-macros-plugin` from 1.3.7 to 1.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/blob/master/CHANGELOG.md\"\u003emkdocs-macros-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.0, 2025-11-13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: For each push, testing on github for versions Python 3.8 to 3.12\u003c/li\u003e\n\u003cli\u003eFixed: bug in import of packages when not in source dir (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.1, 2025-10-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: support for j2_extensions paramater in config file (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed: missing dependency declaration on \u003ccode\u003erequests\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.0, 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: auto-install of missing pluglet (meaningful error message \u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed: error with yaml dumps (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/258\"\u003e#258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed: detection of Jinja2, to allow title rendering (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/266\"\u003e#266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSmall improvements to documentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/0536f4da1dc643e1fa1f0cc90e71512ada67dc04\"\u003e\u003ccode\u003e0536f4d\u003c/code\u003e\u003c/a\u003e Fix type hint for compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/d9a6bc3aac5b12b86f9e2be7af18e1e9178287f6\"\u003e\u003ccode\u003ed9a6bc3\u003c/code\u003e\u003c/a\u003e Require mkdocs-test\u0026gt;=0.6.0 (compatibility with Python 3.8 and 3.9)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/bcaa72db2820d60822ffba15e87c75669abc7b92\"\u003e\u003ccode\u003ebcaa72d\u003c/code\u003e\u003c/a\u003e Make last minute corrections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/356fc2a5b55d1897a2f2c47856d52b10cff4611c\"\u003e\u003ccode\u003e356fc2a\u003c/code\u003e\u003c/a\u003e Prepare for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/aaf16bdcb9dfcb9c6ea9b6567ea4af7f8c178185\"\u003e\u003ccode\u003eaaf16bd\u003c/code\u003e\u003c/a\u003e Limit testing to 3.10 up (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/ba5356c0c263355556aa82dad0fbfde3cce4bc4d\"\u003e\u003ccode\u003eba5356c\u003c/code\u003e\u003c/a\u003e Use proper exit for pytest if Python \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/6c796600bc0886696ce9b76b84354d7e2bc1b6fa\"\u003e\u003ccode\u003e6c79660\u003c/code\u003e\u003c/a\u003e Skip test_modules.py if Python version \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cec7440d46589b303d741a5e2df0a240c25b9bdb\"\u003e\u003ccode\u003ecec7440\u003c/code\u003e\u003c/a\u003e Test installation of d2 in a cross-platform way (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/492759c5ab3d05f7c55ec62ffdf9573b715ac6ed\"\u003e\u003ccode\u003e492759c\u003c/code\u003e\u003c/a\u003e Update with changes from local repo (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cc5416834a07ffd2ba1fe3d917a701ac6e9c98ad\"\u003e\u003ccode\u003ecc54168\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:fralau/mkdocs_macros_plugin\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fralau/mkdocs_macros_plugin/compare/v1.3.7...v1.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.6.2 to 9.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.1\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is now in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features. Going forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the Insiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNote on deprecated plugins\u003c/strong\u003e: The [projects] and [typeset] plugins are included in this release, but must be considered deprecated. Both plugins proved unsustainable to maintain and represent architectural dead ends. They are provided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eChanges\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for projects plugin (for compat, now deprecated)\u003c/li\u003e\n\u003cli\u003eAdded support for typeset plugin (for compat, now deprecated)\u003c/li\u003e\n\u003cli\u003eAdded support for pinned blog posts and author profiles\u003c/li\u003e\n\u003cli\u003eAdded support for customizing pagination for blog index pages\u003c/li\u003e\n\u003cli\u003eAdded support for customizing blog category sort order\u003c/li\u003e\n\u003cli\u003eAdded support for staying on page when switching languages\u003c/li\u003e\n\u003cli\u003eAdded support for disabling tags in table of contents\u003c/li\u003e\n\u003cli\u003eAdded support for nested tags and shadow tags\u003c/li\u003e\n\u003cli\u003eAdded support for footnote tooltips\u003c/li\u003e\n\u003cli\u003eAdded support for instant previews\u003c/li\u003e\n\u003cli\u003eAdded support for instant prefetching\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card layouts\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card background images\u003c/li\u003e\n\u003cli\u003eAdded support for selectable rangs in code blocks\u003c/li\u003e\n\u003cli\u003eAdded support for custom selectors for code annotations\u003c/li\u003e\n\u003cli\u003eAdded support for configurable log level in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for processing of external links in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pinned blog posts and author profiles\u003c/li\u003e\n\u003cli\u003eAdded support for customizing pagination for blog index pages\u003c/li\u003e\n\u003cli\u003eAdded support for customizing blog category sort order\u003c/li\u003e\n\u003cli\u003eAdded support for staying on page when switching languages\u003c/li\u003e\n\u003cli\u003eAdded support for disabling tags in table of contents\u003c/li\u003e\n\u003cli\u003eAdded support for nested tags and shadow tags\u003c/li\u003e\n\u003cli\u003eAdded support for footnote tooltips\u003c/li\u003e\n\u003cli\u003eAdded support for instant previews\u003c/li\u003e\n\u003cli\u003eAdded support for instant prefetching\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card layouts\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card background images\u003c/li\u003e\n\u003cli\u003eAdded support for selectable rangs in code blocks\u003c/li\u003e\n\u003cli\u003eAdded support for custom selectors for code annotations\u003c/li\u003e\n\u003cli\u003eAdded support for configurable log level in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for processing of external links in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for automatic image optimization via optimize plugin\u003c/li\u003e\n\u003cli\u003eAdded support for navigation paths (breadcrumbs)\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8519\"\u003e#8519\u003c/a\u003e: Vector accents do not render when using KaTeX\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.6.23 (2025-11-01)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Burmese translation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/7e236f6866b73aa080cd4d209752f6440bf67440\"\u003e\u003ccode\u003e7e236f6\u003c/code\u003e\u003c/a\u003e Temporarily disable publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/394149152dc10fc5383c956cd133a665c22fa907\"\u003e\u003ccode\u003e3941491\u003c/code\u003e\u003c/a\u003e Fixed CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/034eaf7b0b7a0a4d2e66179de0dcaded4c923f76\"\u003e\u003ccode\u003e034eaf7\u003c/code\u003e\u003c/a\u003e Prepare 9.7.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/79ba428abebf9b365d4930fb9b147255edd10b88\"\u003e\u003ccode\u003e79ba428\u003c/code\u003e\u003c/a\u003e Fixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/61cad249b6eec5727bcf245ca2dea3ef6c98790f\"\u003e\u003ccode\u003e61cad24\u003c/code\u003e\u003c/a\u003e Updated dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/dde13ceb9bb49be3b84bc8c1e59b313250ea8516\"\u003e\u003ccode\u003edde13ce\u003c/code\u003e\u003c/a\u003e Fixed false positives and negatives captured in privacy plugin  (\u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/291012dcf5aff75a32a6fe9e9a6be4d769da12ac\"\u003e\u003ccode\u003e291012d\u003c/code\u003e\u003c/a\u003e Updated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/673d8ca986c37ddeabe25c7e7b7299ec644910ed\"\u003e\u003ccode\u003e673d8ca\u003c/code\u003e\u003c/a\u003e Fixed links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/17227844dce216bf172c9e5de69809765a0b5ab7\"\u003e\u003ccode\u003e1722784\u003c/code\u003e\u003c/a\u003e Documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/aee925f5a0ae3e343ff310e35c667d24eeaff7df\"\u003e\u003ccode\u003eaee925f\u003c/code\u003e\u003c/a\u003e Fixed links\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.6.2...9.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `frequenz-repo-config[lib]` from 0.12.3 to 0.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/releases\"\u003efrequenz-repo-config[lib]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.0\u003c/h2\u003e\n\u003ch1\u003eFrequenz Repository Configuration Release Notes\u003c/h1\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis release adds a new workflow for Dependabot auto-merge and updates mkdocstrings to v2.\u003c/p\u003e\n\u003ch2\u003eUpgrading\u003c/h2\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cp\u003eAll upgrading should be done via the migration script or regenerating the templates.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecurl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.14.0/cookiecutter/migrate.py | python3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eBut you might still need to adapt your code, just have a look at the script output for further instructions.\u003c/p\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emkdocsstrings-python\u003c/code\u003e v2 is now supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDependencies have been updated.\u003c/li\u003e\n\u003cli\u003eNew warning ignores for protobuf gencode versions in pytest.\u003c/li\u003e\n\u003cli\u003eAdded Dependabot auto-merge workflow using \u003ccode\u003efrequenz-floss/dependabot-auto-approve\u003c/code\u003e action.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emkdocstrings: Move \u003ccode\u003epaths\u003c/code\u003e key to the right section in \u003ccode\u003emkdocs.yml\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix invalid YAML syntax in Dependabot workflow template.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump types-pyyaml from 6.0.12.20250402 to 6.0.12.20250516 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/410\"\u003efrequenz-floss/frequenz-repo-config-python#410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the patch group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/408\"\u003efrequenz-floss/frequenz-repo-config-python#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the minor group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/409\"\u003efrequenz-floss/frequenz-repo-config-python#409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove filtering of warnings in pytest by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/411\"\u003efrequenz-floss/frequenz-repo-config-python#411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix mkdocsstrings config by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/412\"\u003efrequenz-floss/frequenz-repo-config-python#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge v0.13.x into v0.x.x by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/420\"\u003efrequenz-floss/frequenz-repo-config-python#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the patch group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/424\"\u003efrequenz-floss/frequenz-repo-config-python#424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the minor group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/423\"\u003efrequenz-floss/frequenz-repo-config-python#423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate templates dependencies by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/431\"\u003efrequenz-floss/frequenz-repo-config-python#431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump types-markdown from 3.8.0.20250415 to 3.8.0.20250708 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/430\"\u003efrequenz-floss/frequenz-repo-config-python#430\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mypy from 1.16.1 to 1.17.1 in the minor group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/428\"\u003efrequenz-floss/frequenz-repo-config-python#428\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the mkdocstrings group across 1 directory with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/432\"\u003efrequenz-floss/frequenz-repo-config-python#432\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/frequenz-floss/frequenz-repo-config-python/blob/v0.x.x/RELEASE_NOTES.md\"\u003efrequenz-repo-config[lib]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFrequenz Repository Configuration Release Notes\u003c/h1\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis release migrates lightweight GitHub Actions workflow jobs to use the new cost-effective \u003ccode\u003eubuntu-slim\u003c/code\u003e runner.\nIt also updates cookiecutter pyproject license metadata to SPDX expressions to avoid setuptools deprecation warnings.\u003c/p\u003e\n\u003ch2\u003eUpgrading\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cp\u003eAll upgrading should be done via the migration script or regenerating the templates.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecurl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.14.0/cookiecutter/migrate.py | python3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eBut you might still need to adapt your code:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated lightweight workflow jobs to use the new \u003ccode\u003eubuntu-slim\u003c/code\u003e runner for cost savings.\nThe following jobs now use \u003ccode\u003eubuntu-slim\u003c/code\u003e:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eci.yaml\u003c/code\u003e: \u003ccode\u003eprotolint\u003c/code\u003e, \u003ccode\u003enox-all\u003c/code\u003e, \u003ccode\u003etest-installation-all\u003c/code\u003e, \u003ccode\u003ecreate-github-release\u003c/code\u003e, \u003ccode\u003epublish-to-pypi\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eci-pr.yaml\u003c/code\u003e: \u003ccode\u003eprotolint\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eauto-dependabot.yaml\u003c/code\u003e: \u003ccode\u003eauto-merge\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erelease-notes-check.yml\u003c/code\u003e: \u003ccode\u003echeck-release-notes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edco-merge-queue.yml\u003c/code\u003e: \u003ccode\u003eDCO\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elabeler.yml\u003c/code\u003e: \u003ccode\u003eLabel\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched \u003ccode\u003eproject.license\u003c/code\u003e to SPDX expressions and added \u003ccode\u003eproject.license-files\u003c/code\u003e.\nThis removes deprecated setuptools license metadata and avoids build warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/a72bd53788be72e52e392ba037d1846e9af9bdb0\"\u003e\u003ccode\u003ea72bd53\u003c/code\u003e\u003c/a\u003e Update mypy-protobuf requirement from \u0026lt;4,\u0026gt;=3.0.0 to \u0026gt;=3.0.0,\u0026lt;5 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/489\"\u003e#489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/10341d61167efc0469c829a7e5159f4fb98db43b\"\u003e\u003ccode\u003e10341d6\u003c/code\u003e\u003c/a\u003e template: Bump protobuf and grpcio to latest versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/af4476785f83336c08114d344820f3c5e47819fa\"\u003e\u003ccode\u003eaf44767\u003c/code\u003e\u003c/a\u003e Update mypy-protobuf requirement from \u0026lt;4,\u0026gt;=3.0.0 to \u0026gt;=3.0.0,\u0026lt;5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/8a4e067b5d713b7667fa0e2fb00328de43bf2355\"\u003e\u003ccode\u003e8a4e067\u003c/code\u003e\u003c/a\u003e Prepare for release v0.14.0 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/490\"\u003e#490\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/73dc4ef502a49f798a6ad672edd6b6b5478851ec\"\u003e\u003ccode\u003e73dc4ef\u003c/code\u003e\u003c/a\u003e Prepare for release v0.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/3d86e084ef981c8f5c8b7256918866bd22bbc069\"\u003e\u003ccode\u003e3d86e08\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/5894e50f24b3fcd742d8d44d2c370ad9a43d734f\"\u003e\u003ccode\u003e5894e50\u003c/code\u003e\u003c/a\u003e Bump pydoclint from 0.7.3 to 0.8.3 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/4a81cbbb8281d46e23c58112bdd202ace0861c85\"\u003e\u003ccode\u003e4a81cbb\u003c/code\u003e\u003c/a\u003e Bump frequenz-floss/gh-action-nox from 1.0.1 to 1.1.0 in the compatible group...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/41b3a2cb1a54c14ca1a4bc1bb983b17bee5580b1\"\u003e\u003ccode\u003e41b3a2c\u003c/code\u003e\u003c/a\u003e Bump pytest from 9.0.1 to 9.0.2 in the patch group (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/487\"\u003e#487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/c2bbc77892b57010335680effe03cb368dc54b75\"\u003e\u003ccode\u003ec2bbc77\u003c/code\u003e\u003c/a\u003e Bump the minor group with 7 updates (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/compare/v0.12.3...v0.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.9.0 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/1.9.0...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-markdown` from 3.7.0.20241204 to 3.10.0.20251106\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 `frequenz-repo-config[extra-lint-examples]` from 0.12.3 to 0.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/releases\"\u003efrequenz-repo-config[extra-lint-examples]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.0\u003c/h2\u003e\n\u003ch1\u003eFrequenz Repository Configuration Release Notes\u003c/h1\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis release adds a new workflow for Dependabot auto-merge and updates mkdocstrings to v2.\u003c/p\u003e\n\u003ch2\u003eUpgrading\u003c/h2\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cp\u003eAll upgrading should be done via the migration script or regenerating the templates.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecurl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.14.0/cookiecutter/migrate.py | python3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eBut you might still need to adapt your code, just have a look at the script output for further instructions.\u003c/p\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emkdocsstrings-python\u003c/code\u003e v2 is now supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDependencies have been updated.\u003c/li\u003e\n\u003cli\u003eNew warning ignores for protobuf gencode versions in pytest.\u003c/li\u003e\n\u003cli\u003eAdded Dependabot auto-merge workflow using \u003ccode\u003efrequenz-floss/dependabot-auto-approve\u003c/code\u003e action.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emkdocstrings: Move \u003ccode\u003epaths\u003c/code\u003e key to the right section in \u003ccode\u003emkdocs.yml\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix invalid YAML syntax in Dependabot workflow template.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump types-pyyaml from 6.0.12.20250402 to 6.0.12.20250516 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/410\"\u003efrequenz-floss/frequenz-repo-config-python#410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the patch group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/408\"\u003efrequenz-floss/frequenz-repo-config-python#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the minor group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/409\"\u003efrequenz-floss/frequenz-repo-config-python#409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove filtering of warnings in pytest by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/411\"\u003efrequenz-floss/frequenz-repo-config-python#411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix mkdocsstrings config by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/412\"\u003efrequenz-floss/frequenz-repo-config-python#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge v0.13.x into v0.x.x by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/420\"\u003efrequenz-floss/frequenz-repo-config-python#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the patch group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/424\"\u003efrequenz-floss/frequenz-repo-config-python#424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the minor group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/423\"\u003efrequenz-floss/frequenz-repo-config-python#423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate templates dependencies by \u003ca href=\"https://github.com/llucax\"\u003e\u003ccode\u003e@​llucax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/431\"\u003efrequenz-floss/frequenz-repo-config-python#431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump types-markdown from 3.8.0.20250415 to 3.8.0.20250708 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/430\"\u003efrequenz-floss/frequenz-repo-config-python#430\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mypy from 1.16.1 to 1.17.1 in the minor group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/428\"\u003efrequenz-floss/frequenz-repo-config-python#428\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the mkdocstrings group across 1 directory with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/pull/432\"\u003efrequenz-floss/frequenz-repo-config-python#432\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/frequenz-floss/frequenz-repo-config-python/blob/v0.x.x/RELEASE_NOTES.md\"\u003efrequenz-repo-config[extra-lint-examples]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFrequenz Repository Configuration Release Notes\u003c/h1\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis release migrates lightweight GitHub Actions workflow jobs to use the new cost-effective \u003ccode\u003eubuntu-slim\u003c/code\u003e runner.\nIt also updates cookiecutter pyproject license metadata to SPDX expressions to avoid setuptools deprecation warnings.\u003c/p\u003e\n\u003ch2\u003eUpgrading\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cp\u003eAll upgrading should be done via the migration script or regenerating the templates.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003ecurl -sSL https://raw.githubusercontent.com/frequenz-floss/frequenz-repo-config-python/v0.14.0/cookiecutter/migrate.py | python3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eBut you might still need to adapt your code:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated lightweight workflow jobs to use the new \u003ccode\u003eubuntu-slim\u003c/code\u003e runner for cost savings.\nThe following jobs now use \u003ccode\u003eubuntu-slim\u003c/code\u003e:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eci.yaml\u003c/code\u003e: \u003ccode\u003eprotolint\u003c/code\u003e, \u003ccode\u003enox-all\u003c/code\u003e, \u003ccode\u003etest-installation-all\u003c/code\u003e, \u003ccode\u003ecreate-github-release\u003c/code\u003e, \u003ccode\u003epublish-to-pypi\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eci-pr.yaml\u003c/code\u003e: \u003ccode\u003eprotolint\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eauto-dependabot.yaml\u003c/code\u003e: \u003ccode\u003eauto-merge\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erelease-notes-check.yml\u003c/code\u003e: \u003ccode\u003echeck-release-notes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edco-merge-queue.yml\u003c/code\u003e: \u003ccode\u003eDCO\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elabeler.yml\u003c/code\u003e: \u003ccode\u003eLabel\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch3\u003eCookiecutter template\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched \u003ccode\u003eproject.license\u003c/code\u003e to SPDX expressions and added \u003ccode\u003eproject.license-files\u003c/code\u003e.\nThis removes deprecated setuptools license metadata and avoids build warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/a72bd53788be72e52e392ba037d1846e9af9bdb0\"\u003e\u003ccode\u003ea72bd53\u003c/code\u003e\u003c/a\u003e Update mypy-protobuf requirement from \u0026lt;4,\u0026gt;=3.0.0 to \u0026gt;=3.0.0,\u0026lt;5 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/489\"\u003e#489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/10341d61167efc0469c829a7e5159f4fb98db43b\"\u003e\u003ccode\u003e10341d6\u003c/code\u003e\u003c/a\u003e template: Bump protobuf and grpcio to latest versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/af4476785f83336c08114d344820f3c5e47819fa\"\u003e\u003ccode\u003eaf44767\u003c/code\u003e\u003c/a\u003e Update mypy-protobuf requirement from \u0026lt;4,\u0026gt;=3.0.0 to \u0026gt;=3.0.0,\u0026lt;5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/8a4e067b5d713b7667fa0e2fb00328de43bf2355\"\u003e\u003ccode\u003e8a4e067\u003c/code\u003e\u003c/a\u003e Prepare for release v0.14.0 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/490\"\u003e#490\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/73dc4ef502a49f798a6ad672edd6b6b5478851ec\"\u003e\u003ccode\u003e73dc4ef\u003c/code\u003e\u003c/a\u003e Prepare for release v0.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frequenz-floss/frequenz-repo-config-python/commit/3d86e084ef981c8f5c8b7256918866bd22bbc069\"\u003e\u003ccode\u003e3d86e08\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/frequenz-floss/frequenz-repo-config-python/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github....\n\n_Description has been truncated_","html_url":"https://github.com/llucax/frequenz-client-weather-python/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/llucax%2Ffrequenz-client-weather-python/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}},{"old_version":"0.5.0","new_version":"0.6.0","update_type":"minor","path":null,"pr_created_at":"2026-01-27T00:43:28.000Z","version_change":"0.5.0 → 0.6.0","issue":{"uuid":"3858298658","node_id":"PR_kwDOMFeY886_fIza","number":148,"state":"open","title":"python-deps(deps): bump the python-dependencies group across 1 directory with 15 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["dependabot[bot]"],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-27T00:43:28.000Z","updated_at":"2026-01-27T00:54:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"python-deps(deps): bump","group_name":"python-dependencies","update_count":15,"packages":[{"name":"black","old_version":"25.12.0","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"mkdocs-gen-files","old_version":"0.5.0","new_version":"0.6.0","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-include-markdown-plugin","old_version":"7.2.0","new_version":"7.2.1","repository_url":"https://github.com/mondeja/mkdocs-include-markdown-plugin"},{"name":"mkdocstrings","old_version":"0.30.1","new_version":"1.0.2","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"mkdocstrings-python","old_version":"1.19.0","new_version":"2.0.1","repository_url":"https://github.com/mkdocstrings/python"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pymdown-extensions","old_version":"10.20","new_version":"10.20.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"coverage","old_version":"7.13.1","new_version":"7.13.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [pylint](https://github.com/pylint-dev/pylint), [pyright](https://github.com/RobertCraigie/pyright-python), [wheel](https://github.com/pypa/wheel), [black](https://github.com/psf/black), [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files), [mkdocs-include-markdown-plugin](https://github.com/mondeja/mkdocs-include-markdown-plugin), [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings), [mkdocstrings-python](https://github.com/mkdocstrings/python), [packaging](https://github.com/pypa/packaging), [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions), [coverage](https://github.com/coveragepy/coveragepy), [pytest](https://github.com/pytest-dev/pytest), [markdown](https://github.com/Python-Markdown/markdown), [setuptools](https://github.com/pypa/setuptools) and [coverage[toml]](https://github.com/coveragepy/coveragepy) to permit the latest version.\nUpdates `pylint` to 4.0.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/e16f942166511d6fb4427e503a734152fae0c4fe\"\u003e\u003ccode\u003ee16f942\u003c/code\u003e\u003c/a\u003e Bump pylint to 4.0.4, update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/657b386c0a83202faa95c9a525b8feb80a4c11ab\"\u003e\u003ccode\u003e657b386\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] [invalid-name] Fix FP for exclusive assignment o...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/03f8a922a2eabe5b517457807cc992e122dcc9c0\"\u003e\u003ccode\u003e03f8a92\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] fix: avoid false positive when module-level name...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/84b6552b86e210097ac29de7ef64b152efb4a454\"\u003e\u003ccode\u003e84b6552\u003c/code\u003e\u003c/a\u003e Bump pylint to 4.0.3, update changelog (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10741\"\u003e#10741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/77b0cd8c0e40eb563ab96067be6bdb3e9e266f1e\"\u003e\u003ccode\u003e77b0cd8\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] fix(expand_modules): pass ignore_list to modutil...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/755f2d0327809a5b358b99ad7fc67a7a5a2faad0\"\u003e\u003ccode\u003e755f2d0\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Upgrade astroid to 4.0.2 (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10733\"\u003e#10733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/c96a9e4d232abcfa1d7f449839b68337816305e9\"\u003e\u003ccode\u003ec96a9e4\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix crash when a variable annotation is used as ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/108191ebbcd9dc8fa9e3fb71c83fd247d2f6ccd1\"\u003e\u003ccode\u003e108191e\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix a false positive for class attribute typed w...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/0ed81725382db48ac0061c96c1948f42fe75f85d\"\u003e\u003ccode\u003e0ed8172\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix crash when a \u003ccode\u003eslice\u003c/code\u003e object is called (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10728\"\u003e#10728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/b128b7d909bf541b2978d84bfe5ed4f4d67210e5\"\u003e\u003ccode\u003eb128b7d\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix a false positive for ``unbalanced-tuple-unpa...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pylint-dev/pylint/compare/v3.3.8...v4.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` to 1.1.408\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/81b795a41ddcc3c77218d8c8e406983e39852285\"\u003e\u003ccode\u003e81b795a\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.408 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/53e8efb4638daca6c541d18ad35dafb0e5d9f34d\"\u003e\u003ccode\u003e53e8efb\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.407 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/1d515b71299f9dc4c066ce37e673d93bda4bc2df\"\u003e\u003ccode\u003e1d515b7\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.406 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.405...v1.1.408\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `wheel` to 0.46.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/releases\"\u003ewheel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.46.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eImportError: cannot import name '_setuptools_logging' from 'wheel'\u003c/code\u003e when installed alongside an old version of setuptools and running the \u003ccode\u003ebdist_wheel\u003c/code\u003e command (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/676\"\u003e#676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/blob/main/docs/news.rst\"\u003ewheel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease Notes\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.3 (2026-01-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eImportError: cannot import name '_setuptools_logging' from 'wheel'\u003c/code\u003e when\ninstalled alongside an old version of setuptools and running the \u003ccode\u003ebdist_wheel\u003c/code\u003e\ncommand (\u003ccode\u003e[#676](https://github.com/pypa/wheel/issues/676) \u0026lt;https://github.com/pypa/wheel/issues/676\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.2 (2026-01-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestored the \u003ccode\u003ebdist_wheel\u003c/code\u003e command for compatibility with \u003ccode\u003esetuptools\u003c/code\u003e older than\nv70.1\u003c/li\u003e\n\u003cli\u003eImporting \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e instead of a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel unpack\u003c/code\u003e potentially altering the permissions of files outside of the\ndestination tree with maliciously crafted wheels (CVE-2026-24049)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.1 (2025-04-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTemporarily restored the \u003ccode\u003ewheel.macosx_libfile\u003c/code\u003e module\n(\u003ccode\u003e[#659](https://github.com/pypa/wheel/issues/659) \u0026lt;https://github.com/pypa/wheel/issues/659\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.0 (2025-04-03)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003ebdist_wheel\u003c/code\u003e setuptools command implementation and entry point.\nThe \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e module is now just an alias to\n\u003ccode\u003esetuptools.command.bdist_wheel\u003c/code\u003e, emitting a deprecation warning on import.\u003c/li\u003e\n\u003cli\u003eRemoved vendored \u003ccode\u003epackaging\u003c/code\u003e in favor of a run-time dependency on it\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.metadata\u003c/code\u003e module private (with a deprecation warning if it's\nimported\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.cli\u003c/code\u003e package private (no deprecation warning)\u003c/li\u003e\n\u003cli\u003eFixed an exception when calling the \u003ccode\u003econvert\u003c/code\u003e command with an empty description\nfield\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.1 (2024-11-23)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed pure Python wheels converted from eggs and wininst files having the ABI tag in\nthe file name\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.0 (2024-11-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRefactored the \u003ccode\u003econvert\u003c/code\u003e command to not need setuptools to be installed\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't configure setuptools logging unless running \u003ccode\u003ebdist_wheel\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a redirection from \u003ccode\u003ewheel.bdist_wheel.bdist_wheel\u003c/code\u003e to\n\u003ccode\u003esetuptools.command.bdist_wheel.bdist_wheel\u003c/code\u003e to improve compatibility with\n\u003ccode\u003esetuptools\u003c/code\u003e' latest fixes.\u003c/p\u003e\n\u003cp\u003eProjects are still advised to migrate away from the deprecated  module and import\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/pypa/wheel/commit/8b6fa740a7101edacb42b0f8e83a1b659ff61033\"\u003e\u003ccode\u003e8b6fa74\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/7445fb5bc13c91052021c40981fb0ec7172880bd\"\u003e\u003ccode\u003e7445fb5\u003c/code\u003e\u003c/a\u003e Fixed an import of a removed module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/eba4036ccaca4e2d0c5b5bf3e3be59b2b2877d6b\"\u003e\u003ccode\u003eeba4036\u003c/code\u003e\u003c/a\u003e Updated the version number for v0.46.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/557fb5425036ccca95330b2c8875e54c9f4483cf\"\u003e\u003ccode\u003e557fb54\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/7a7d2de96b22a9adf9208afcc9547e1001569fef\"\u003e\u003ccode\u003e7a7d2de\u003c/code\u003e\u003c/a\u003e Fixed security issue around wheel unpack (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/675\"\u003e#675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/41418fac233d6973ea8798d620df4aa5b3aa1b66\"\u003e\u003ccode\u003e41418fa\u003c/code\u003e\u003c/a\u003e Fixed test failures due to metadata normalization changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/c1d442bec6c634fcfb89e5d58698dd226685bd14\"\u003e\u003ccode\u003ec1d442b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/674\"\u003e#674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/0bac8820ec90b1aaa0695d79a56563137b48686d\"\u003e\u003ccode\u003e0bac882\u003c/code\u003e\u003c/a\u003e Update github actions environments (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/673\"\u003e#673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/be9f45b4ee1210b2a815d2eefea56b71efd99d63\"\u003e\u003ccode\u003ebe9f45b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/667\"\u003e#667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/6244f08bb92d7569da6c2fbea23de0846ad34ff3\"\u003e\u003ccode\u003e6244f08\u003c/code\u003e\u003c/a\u003e Update pre-commit ruff legacy alias (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/668\"\u003e#668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/wheel/compare/0.45.0...0.46.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 25.12.0 to 26.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \u003ccode\u003eas\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\nmatching subdirectories (like the previous behavior did), and not just matching root\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \u003ccode\u003eas\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6305bf1ae645ab7541be4f5028a86239316178eb\"\u003e\u003ccode\u003e6305bf1\u003c/code\u003e\u003c/a\u003e Prepare 2026.1.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e71305bee302f7f9016b228361e5ae69669dca7b\"\u003e\u003ccode\u003ee71305b\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.3.0 to 3.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4961\"\u003e#4961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/21a2a8c2b1d0c8d47bc00cc59591470f6a9e2307\"\u003e\u003ccode\u003e21a2a8c\u003c/code\u003e\u003c/a\u003e Fix Shutdown multiprocessing Manager in schedule_formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4952\"\u003e#4952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e3146cea4245fcee29d007cb45d9faaf63271586\"\u003e\u003ccode\u003ee3146ce\u003c/code\u003e\u003c/a\u003e Bump docker/setup-buildx-action from 3.11.1 to 3.12.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4919\"\u003e#4919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/fe1fbc4fdfa03fa1d460f975b8aca77e4b4f1a4a\"\u003e\u003ccode\u003efe1fbc4\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4923\"\u003e#4923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b4b7fcfe00bb0d99322e07e87fc2f0992f7a4d8\"\u003e\u003ccode\u003e2b4b7fc\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4922\"\u003e#4922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d745be69bfa9d85ec2ef6e5f9b7ec7e253b5e8ab\"\u003e\u003ccode\u003ed745be6\u003c/code\u003e\u003c/a\u003e docs: document --force-exclude for pre-commit workflows (\u003ca href=\"https://redirect.github.com/psf/black/issues/4957\"\u003e#4957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b41acd6ebbe76e18b49286166924f73f01c3fd02\"\u003e\u003ccode\u003eb41acd6\u003c/code\u003e\u003c/a\u003e Various CI and doc refactors (\u003ca href=\"https://redirect.github.com/psf/black/issues/4928\"\u003e#4928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6f43612766da4a2f275b575af0802c3e73b6ed83\"\u003e\u003ccode\u003e6f43612\u003c/code\u003e\u003c/a\u003e Handle pathspec v1 changes (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/200c550aff44372f801a6d826a361cb26f45a504\"\u003e\u003ccode\u003e200c550\u003c/code\u003e\u003c/a\u003e Bump furo from 2025.9.25 to 2025.12.19 in /docs (\u003ca href=\"https://redirect.github.com/psf/black/issues/4933\"\u003e#4933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.12.0...26.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.5.0 to 0.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompatibility with MkDocs 1.6 is improved - generated files don't have to have an \u003ccode\u003eabs_src_path\u003c/code\u003e - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThere was a bug: using \u003ccode\u003eedit_uri_template\u003c/code\u003e in MkDocs would prevent \u003ccode\u003eset_edit_path()\u003c/code\u003e from working.\nThis is now fixed - \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/37\"\u003e#37\u003c/a\u003e - thanks to \u003ca href=\"https://github.com/frankkusters\"\u003e\u003ccode\u003e@​frankkusters\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe MkDocs configuration file now can be \u003ccode\u003emkdocs.yaml\u003c/code\u003e, not only \u003ccode\u003emkdocs.yml\u003c/code\u003e. Thanks to \u003ca href=\"https://github.com/mgor\"\u003e\u003ccode\u003e@​mgor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/39\"\u003eoprypin/mkdocs-gen-files#39\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMkDocs 1.4.1 is now the lowest supported version -  \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.9 is now the lowest supported version.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ca href=\"https://oprypin.github.io/mkdocs-gen-files/extras.html#programmatically-generating-the-navigation\"\u003enav generator\u003c/a\u003e can support empty paths - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.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/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/1a822d9e0d376d8ecae95fb961144a5af4887ef1\"\u003e\u003ccode\u003e1a822d9\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003e\u003ccode\u003e7baa032\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/6fd0fe048ebf928763458d8dba1a476ca2196117\"\u003e\u003ccode\u003e6fd0fe0\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-include-markdown-plugin` from 7.2.0 to 7.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/releases\"\u003emkdocs-include-markdown-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.2.1\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize string concatenation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/39df60911e5a5da6cd0cdace89cead96c79636bc\"\u003e\u003ccode\u003e39df609\u003c/code\u003e\u003c/a\u003e Optimize string concatenation across multiple files (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/39fb543b070d00114b2ec72d6373499b74092066\"\u003e\u003ccode\u003e39fb543\u003c/code\u003e\u003c/a\u003e docs(license): update copyright year(s) (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/6fd647f159f346e002e14c175f0b8ea6e67f8144\"\u003e\u003ccode\u003e6fd647f\u003c/code\u003e\u003c/a\u003e Document that filesystem order allows reverse (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/32978ca56cbc343feda9d7e0e448162b272e7f5b\"\u003e\u003ccode\u003e32978ca\u003c/code\u003e\u003c/a\u003e Deduplicate common arguments in documentation (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/compare/v7.2.0...v7.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocstrings` from 0.30.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.2\"\u003e1.0.2\u003c/a\u003e - 2026-01-24\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.1...1.0.2\"\u003eCompare with 1.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse global instances for handlers and autorefs (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e9f79141\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.1\"\u003e1.0.1\u003c/a\u003e - 2026-01-19\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.1\"\u003eCompare with 1.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport manual cross-references in Zensical too (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003ed37d907\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eSupport cross-references in Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003ef43f1ee\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/812\"\u003ePR-812\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.0\"\u003e1.0.0\u003c/a\u003e - 2025-11-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.30.1...1.0.0\"\u003eCompare with 0.30.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.name\u003c/code\u003e: \u003cem\u003eAttribute value was changed\u003c/em\u003e: \u003ccode\u003e''\u003c/code\u003e -\u0026gt; unset\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.domain\u003c/code\u003e: \u003cem\u003eAttribute value was changed\u003c/em\u003e: \u003ccode\u003e''\u003c/code\u003e -\u0026gt; unset\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.fallback_config\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(args)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(kwargs)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(theme)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(custom_templates)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(mdx)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(mdx_config)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(args)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(kwargs)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(config)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eHandlers.get_anchors\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.plugin\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.loggers\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.inventory\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.extension\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.handlers\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated code before v1 (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/de34044a02b45250e215af0f969dca581dfb82c5\"\u003ede34044\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpect Zensical to pass extension configuration instead of loading it again from YAML (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/6b73d5a2f455062ab6c68376c85adce6adc037a3\"\u003e6b73d5a\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpose the Markdown extension, to make mkdocstrings compatible with Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/6de266759b79eb72cddd300e6a0a8576085fae40\"\u003e6de2667\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.2\"\u003e1.0.2\u003c/a\u003e - 2026-01-24\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.1...1.0.2\"\u003eCompare with 1.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse global instances for handlers and autorefs (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e9f79141\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.1\"\u003e1.0.1\u003c/a\u003e - 2026-01-19\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.1\"\u003eCompare with 1.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport manual cross-references in Zensical too (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003ed37d907\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eSupport cross-references in Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003ef43f1ee\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/812\"\u003ePR-812\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.0\"\u003e1.0.0\u003c/a\u003e - 2025-11-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.30.1...1.0.0\"\u003eCompare with 0.30.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.name\u003c/code\u003e: \u003cem\u003eAttribute value was changed\u003c/em\u003e: \u003ccode\u003e''\u003c/code\u003e -\u0026gt; unset\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.domain\u003c/code\u003e: \u003cem\u003eAttribute value was changed\u003c/em\u003e: \u003ccode\u003e''\u003c/code\u003e -\u0026gt; unset\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.fallback_config\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(args)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(kwargs)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(theme)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(custom_templates)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(mdx)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(mdx_config)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(args)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(kwargs)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(config)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eHandlers.get_anchors\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.plugin\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.loggers\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.inventory\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.extension\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.handlers\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated code before v1 (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/de34044a02b45250e215af0f969dca581dfb82c5\"\u003ede34044\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpect Zensical to pass extension configuration instead of loading it again from YAML (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/6b73d5a2f455062ab6c68376c85adce6adc037a3\"\u003e6b73d5a\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpose the Markdown extension, to make mkdocstrings compatible with Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/6de266759b79eb72cddd300e6a0a8576085fae40\"\u003e6de2667\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/4e66617fbe26636f86117c26b2482c21892166fe\"\u003e\u003ccode\u003e4e66617\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e\u003ccode\u003e9f79141\u003c/code\u003e\u003c/a\u003e refactor: Use global instances for handlers and autorefs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/cb8a3c781674b8e23cf0048955d70358d7bab49e\"\u003e\u003ccode\u003ecb8a3c7\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003e\u003ccode\u003ed37d907\u003c/code\u003e\u003c/a\u003e refactor: Support manual cross-references in Zensical too\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/0edd18af00fa5907bb31e8309ecf5ad4309da552\"\u003e\u003ccode\u003e0edd18a\u003c/code\u003e\u003c/a\u003e chore: Clean up after v1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003e\u003ccode\u003ef43f1ee\u003c/code\u003e\u003c/a\u003e refactor: Support cross-references in Zensical\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b6a33e23ba411159253ee44d1b1fa63b9a9a7b7a\"\u003e\u003ccode\u003eb6a33e2\u003c/code\u003e\u003c/a\u003e chore: Update sponsors section in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/afefc0fbccc09f7b6f0c92cf3446434d241f1658\"\u003e\u003ccode\u003eafefc0f\u003c/code\u003e\u003c/a\u003e chore: Fix docs-deploy duty\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/cc54d77f63ecb97c4bcc6fb1b447eddad6e842ce\"\u003e\u003ccode\u003ecc54d77\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/68760a9ec55772c8b330b056c2d0896877324b1c\"\u003e\u003ccode\u003e68760a9\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.30.1...1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocstrings-python` from 1.19.0 to 2.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/python/releases\"\u003emkdocstrings-python's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2025-12-03\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't ignore filters when category grouping is disabled (\u003ca href=\"https://github.com/mkdocstrings/python/commit/63aa1b0af0d14912ebf83a4e3c2cd0c7f2a19dae\"\u003e63aa1b0\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/issues/324\"\u003eIssue-324\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLocalize more contents in templates (\u003ca href=\"https://github.com/mkdocstrings/python/commit/854b6a601bd334fe544285aa9eae11482388a583\"\u003e854b6a6\u003c/a\u003e by Zhikang Yan). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/pull/321\"\u003ePR-321\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove ja/zh translations (\u003ca href=\"https://github.com/mkdocstrings/python/commit/b83107c8e86d9650fe4544e569f6da16a46b8472\"\u003eb83107c\u003c/a\u003e by Zhikang Yan). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/pull/322\"\u003ePR-322\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.0\"\u003e2.0.0\u003c/a\u003e - 2025-11-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/1.19.0...2.0.0\"\u003eCompare with 1.19.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated code for v2 (\u003ca href=\"https://github.com/mkdocstrings/python/commit/c10afdb98d590a23c8840c7c0cdd6c358094dc2c\"\u003ec10afdb\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/python/blob/main/CHANGELOG.md\"\u003emkdocstrings-python's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2025-12-03\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't ignore filters when category grouping is disabled (\u003ca href=\"https://github.com/mkdocstrings/python/commit/63aa1b0af0d14912ebf83a4e3c2cd0c7f2a19dae\"\u003e63aa1b0\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/issues/324\"\u003eIssue-324\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLocalize more contents in templates (\u003ca href=\"https://github.com/mkdocstrings/python/commit/854b6a601bd334fe544285aa9eae11482388a583\"\u003e854b6a6\u003c/a\u003e by Zhikang Yan). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/pull/321\"\u003ePR-321\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove ja/zh translations (\u003ca href=\"https://github.com/mkdocstrings/python/commit/b83107c8e86d9650fe4544e569f6da16a46b8472\"\u003eb83107c\u003c/a\u003e by Zhikang Yan). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/pull/322\"\u003ePR-322\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.0\"\u003e2.0.0\u003c/a\u003e - 2025-11-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/1.19.0...2.0.0\"\u003eCompare with 1.19.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated code for v2 (\u003ca href=\"https://github.com/mkdocstrings/python/commit/c10afdb98d590a23c8840c7c0cdd6c358094dc2c\"\u003ec10afdb\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/6e7b971e2174eeba885b61ed0a348a9202ffe5ab\"\u003e\u003ccode\u003e6e7b971\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/854b6a601bd334fe544285aa9eae11482388a583\"\u003e\u003ccode\u003e854b6a6\u003c/code\u003e\u003c/a\u003e refactor: Localize more contents in templates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/b83107c8e86d9650fe4544e569f6da16a46b8472\"\u003e\u003ccode\u003eb83107c\u003c/code\u003e\u003c/a\u003e refactor: Improve ja/zh translations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/63aa1b0af0d14912ebf83a4e3c2cd0c7f2a19dae\"\u003e\u003ccode\u003e63aa1b0\u003c/code\u003e\u003c/a\u003e fix: Don't ignore filters when category grouping is disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/76c08aca4ea57e1d2eda038fee53f3dd5f15e711\"\u003e\u003ccode\u003e76c08ac\u003c/code\u003e\u003c/a\u003e docs: Fix cross-reference\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/50d135aa5621ecd424697f198fb6739a3cf16d44\"\u003e\u003ccode\u003e50d135a\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/2b7db124acddd3505d711cd03d8781fb8e3ba492\"\u003e\u003ccode\u003e2b7db12\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/1a38a243409b3f2ce2989ca2422fe9fe2ea25d2a\"\u003e\u003ccode\u003e1a38a24\u003c/code\u003e\u003c/a\u003e docs: Remove funding banner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/c10afdb98d590a23c8840c7c0cdd6c358094dc2c\"\u003e\u003ccode\u003ec10afdb\u003c/code\u003e\u003c/a\u003e refactor: Remove deprecated code for v2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/b5ef2f3ae1218f7003bbb4a734c3f5ef00d59843\"\u003e\u003ccode\u003eb5ef2f3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:mkdocstrings/python\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/python/compare/1.19.0...2.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `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 `pymdown-extensions` from 10.20 to 10.20.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.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 `pytest` from 8.4.2 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://red...\n\n_Description has been truncated_","html_url":"https://github.com/tektronix/tm_data_types/pull/148","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tektronix%2Ftm_data_types/issues/148","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/148/packages"}},{"old_version":"0.5.0","new_version":"0.6.0","update_type":"minor","path":null,"pr_created_at":"2026-01-25T21:02:12.000Z","version_change":"0.5.0 → 0.6.0","issue":{"uuid":"3853852454","node_id":"PR_kwDOMFeY886_Qqr9","number":147,"state":"open","title":"python-deps(deps): bump the python-dependencies group across 1 directory with 14 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["dependabot[bot]"],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-25T21:02:12.000Z","updated_at":"2026-01-25T23:00:41.983Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"python-deps(deps): bump","group_name":"python-dependencies","update_count":14,"packages":[{"name":"black","old_version":"25.12.0","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"mkdocs-gen-files","old_version":"0.5.0","new_version":"0.6.0","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-include-markdown-plugin","old_version":"7.2.0","new_version":"7.2.1","repository_url":"https://github.com/mondeja/mkdocs-include-markdown-plugin"},{"name":"mkdocstrings","old_version":"0.30.1","new_version":"1.0.2","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"mkdocstrings-python","old_version":"1.19.0","new_version":"2.0.1","repository_url":"https://github.com/mkdocstrings/python"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pymdown-extensions","old_version":"10.20","new_version":"10.20.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"coverage","old_version":"7.13.1","new_version":"7.13.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [pylint](https://github.com/pylint-dev/pylint), [pyright](https://github.com/RobertCraigie/pyright-python), [wheel](https://github.com/pypa/wheel), [black](https://github.com/psf/black), [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files), [mkdocs-include-markdown-plugin](https://github.com/mondeja/mkdocs-include-markdown-plugin), [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings), [mkdocstrings-python](https://github.com/mkdocstrings/python), [packaging](https://github.com/pypa/packaging), [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions), [coverage](https://github.com/coveragepy/coveragepy), [pytest](https://github.com/pytest-dev/pytest), [markdown](https://github.com/Python-Markdown/markdown) and [coverage[toml]](https://github.com/coveragepy/coveragepy) to permit the latest version.\nUpdates `pylint` to 4.0.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/e16f942166511d6fb4427e503a734152fae0c4fe\"\u003e\u003ccode\u003ee16f942\u003c/code\u003e\u003c/a\u003e Bump pylint to 4.0.4, update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/657b386c0a83202faa95c9a525b8feb80a4c11ab\"\u003e\u003ccode\u003e657b386\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] [invalid-name] Fix FP for exclusive assignment o...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/03f8a922a2eabe5b517457807cc992e122dcc9c0\"\u003e\u003ccode\u003e03f8a92\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] fix: avoid false positive when module-level name...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/84b6552b86e210097ac29de7ef64b152efb4a454\"\u003e\u003ccode\u003e84b6552\u003c/code\u003e\u003c/a\u003e Bump pylint to 4.0.3, update changelog (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10741\"\u003e#10741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/77b0cd8c0e40eb563ab96067be6bdb3e9e266f1e\"\u003e\u003ccode\u003e77b0cd8\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] fix(expand_modules): pass ignore_list to modutil...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/755f2d0327809a5b358b99ad7fc67a7a5a2faad0\"\u003e\u003ccode\u003e755f2d0\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Upgrade astroid to 4.0.2 (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10733\"\u003e#10733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/c96a9e4d232abcfa1d7f449839b68337816305e9\"\u003e\u003ccode\u003ec96a9e4\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix crash when a variable annotation is used as ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/108191ebbcd9dc8fa9e3fb71c83fd247d2f6ccd1\"\u003e\u003ccode\u003e108191e\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix a false positive for class attribute typed w...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/0ed81725382db48ac0061c96c1948f42fe75f85d\"\u003e\u003ccode\u003e0ed8172\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix crash when a \u003ccode\u003eslice\u003c/code\u003e object is called (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10728\"\u003e#10728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/b128b7d909bf541b2978d84bfe5ed4f4d67210e5\"\u003e\u003ccode\u003eb128b7d\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix a false positive for ``unbalanced-tuple-unpa...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pylint-dev/pylint/compare/v3.3.8...v4.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` to 1.1.408\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/81b795a41ddcc3c77218d8c8e406983e39852285\"\u003e\u003ccode\u003e81b795a\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.408 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/53e8efb4638daca6c541d18ad35dafb0e5d9f34d\"\u003e\u003ccode\u003e53e8efb\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.407 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/1d515b71299f9dc4c066ce37e673d93bda4bc2df\"\u003e\u003ccode\u003e1d515b7\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.406 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.405...v1.1.408\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `wheel` to 0.46.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/releases\"\u003ewheel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.46.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eImportError: cannot import name '_setuptools_logging' from 'wheel'\u003c/code\u003e when installed alongside an old version of setuptools and running the \u003ccode\u003ebdist_wheel\u003c/code\u003e command (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/676\"\u003e#676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/blob/main/docs/news.rst\"\u003ewheel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease Notes\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.3 (2026-01-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eImportError: cannot import name '_setuptools_logging' from 'wheel'\u003c/code\u003e when\ninstalled alongside an old version of setuptools and running the \u003ccode\u003ebdist_wheel\u003c/code\u003e\ncommand (\u003ccode\u003e[#676](https://github.com/pypa/wheel/issues/676) \u0026lt;https://github.com/pypa/wheel/issues/676\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.2 (2026-01-22)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestored the \u003ccode\u003ebdist_wheel\u003c/code\u003e command for compatibility with \u003ccode\u003esetuptools\u003c/code\u003e older than\nv70.1\u003c/li\u003e\n\u003cli\u003eImporting \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e instead of a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel unpack\u003c/code\u003e potentially altering the permissions of files outside of the\ndestination tree with maliciously crafted wheels (CVE-2026-24049)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.1 (2025-04-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTemporarily restored the \u003ccode\u003ewheel.macosx_libfile\u003c/code\u003e module\n(\u003ccode\u003e[#659](https://github.com/pypa/wheel/issues/659) \u0026lt;https://github.com/pypa/wheel/issues/659\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.0 (2025-04-03)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003ebdist_wheel\u003c/code\u003e setuptools command implementation and entry point.\nThe \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e module is now just an alias to\n\u003ccode\u003esetuptools.command.bdist_wheel\u003c/code\u003e, emitting a deprecation warning on import.\u003c/li\u003e\n\u003cli\u003eRemoved vendored \u003ccode\u003epackaging\u003c/code\u003e in favor of a run-time dependency on it\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.metadata\u003c/code\u003e module private (with a deprecation warning if it's\nimported\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.cli\u003c/code\u003e package private (no deprecation warning)\u003c/li\u003e\n\u003cli\u003eFixed an exception when calling the \u003ccode\u003econvert\u003c/code\u003e command with an empty description\nfield\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.1 (2024-11-23)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed pure Python wheels converted from eggs and wininst files having the ABI tag in\nthe file name\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.0 (2024-11-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRefactored the \u003ccode\u003econvert\u003c/code\u003e command to not need setuptools to be installed\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't configure setuptools logging unless running \u003ccode\u003ebdist_wheel\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a redirection from \u003ccode\u003ewheel.bdist_wheel.bdist_wheel\u003c/code\u003e to\n\u003ccode\u003esetuptools.command.bdist_wheel.bdist_wheel\u003c/code\u003e to improve compatibility with\n\u003ccode\u003esetuptools\u003c/code\u003e' latest fixes.\u003c/p\u003e\n\u003cp\u003eProjects are still advised to migrate away from the deprecated  module and import\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/pypa/wheel/commit/8b6fa740a7101edacb42b0f8e83a1b659ff61033\"\u003e\u003ccode\u003e8b6fa74\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/7445fb5bc13c91052021c40981fb0ec7172880bd\"\u003e\u003ccode\u003e7445fb5\u003c/code\u003e\u003c/a\u003e Fixed an import of a removed module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/eba4036ccaca4e2d0c5b5bf3e3be59b2b2877d6b\"\u003e\u003ccode\u003eeba4036\u003c/code\u003e\u003c/a\u003e Updated the version number for v0.46.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/557fb5425036ccca95330b2c8875e54c9f4483cf\"\u003e\u003ccode\u003e557fb54\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/7a7d2de96b22a9adf9208afcc9547e1001569fef\"\u003e\u003ccode\u003e7a7d2de\u003c/code\u003e\u003c/a\u003e Fixed security issue around wheel unpack (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/675\"\u003e#675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/41418fac233d6973ea8798d620df4aa5b3aa1b66\"\u003e\u003ccode\u003e41418fa\u003c/code\u003e\u003c/a\u003e Fixed test failures due to metadata normalization changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/c1d442bec6c634fcfb89e5d58698dd226685bd14\"\u003e\u003ccode\u003ec1d442b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/674\"\u003e#674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/0bac8820ec90b1aaa0695d79a56563137b48686d\"\u003e\u003ccode\u003e0bac882\u003c/code\u003e\u003c/a\u003e Update github actions environments (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/673\"\u003e#673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/be9f45b4ee1210b2a815d2eefea56b71efd99d63\"\u003e\u003ccode\u003ebe9f45b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/667\"\u003e#667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/6244f08bb92d7569da6c2fbea23de0846ad34ff3\"\u003e\u003ccode\u003e6244f08\u003c/code\u003e\u003c/a\u003e Update pre-commit ruff legacy alias (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/668\"\u003e#668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/wheel/compare/0.45.0...0.46.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 25.12.0 to 26.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \u003ccode\u003eas\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\nmatching subdirectories (like the previous behavior did), and not just matching root\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \u003ccode\u003eas\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6305bf1ae645ab7541be4f5028a86239316178eb\"\u003e\u003ccode\u003e6305bf1\u003c/code\u003e\u003c/a\u003e Prepare 2026.1.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e71305bee302f7f9016b228361e5ae69669dca7b\"\u003e\u003ccode\u003ee71305b\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.3.0 to 3.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4961\"\u003e#4961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/21a2a8c2b1d0c8d47bc00cc59591470f6a9e2307\"\u003e\u003ccode\u003e21a2a8c\u003c/code\u003e\u003c/a\u003e Fix Shutdown multiprocessing Manager in schedule_formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4952\"\u003e#4952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e3146cea4245fcee29d007cb45d9faaf63271586\"\u003e\u003ccode\u003ee3146ce\u003c/code\u003e\u003c/a\u003e Bump docker/setup-buildx-action from 3.11.1 to 3.12.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4919\"\u003e#4919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/fe1fbc4fdfa03fa1d460f975b8aca77e4b4f1a4a\"\u003e\u003ccode\u003efe1fbc4\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4923\"\u003e#4923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b4b7fcfe00bb0d99322e07e87fc2f0992f7a4d8\"\u003e\u003ccode\u003e2b4b7fc\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4922\"\u003e#4922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d745be69bfa9d85ec2ef6e5f9b7ec7e253b5e8ab\"\u003e\u003ccode\u003ed745be6\u003c/code\u003e\u003c/a\u003e docs: document --force-exclude for pre-commit workflows (\u003ca href=\"https://redirect.github.com/psf/black/issues/4957\"\u003e#4957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b41acd6ebbe76e18b49286166924f73f01c3fd02\"\u003e\u003ccode\u003eb41acd6\u003c/code\u003e\u003c/a\u003e Various CI and doc refactors (\u003ca href=\"https://redirect.github.com/psf/black/issues/4928\"\u003e#4928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6f43612766da4a2f275b575af0802c3e73b6ed83\"\u003e\u003ccode\u003e6f43612\u003c/code\u003e\u003c/a\u003e Handle pathspec v1 changes (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/200c550aff44372f801a6d826a361cb26f45a504\"\u003e\u003ccode\u003e200c550\u003c/code\u003e\u003c/a\u003e Bump furo from 2025.9.25 to 2025.12.19 in /docs (\u003ca href=\"https://redirect.github.com/psf/black/issues/4933\"\u003e#4933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.12.0...26.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.5.0 to 0.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompatibility with MkDocs 1.6 is improved - generated files don't have to have an \u003ccode\u003eabs_src_path\u003c/code\u003e - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThere was a bug: using \u003ccode\u003eedit_uri_template\u003c/code\u003e in MkDocs would prevent \u003ccode\u003eset_edit_path()\u003c/code\u003e from working.\nThis is now fixed - \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/37\"\u003e#37\u003c/a\u003e - thanks to \u003ca href=\"https://github.com/frankkusters\"\u003e\u003ccode\u003e@​frankkusters\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe MkDocs configuration file now can be \u003ccode\u003emkdocs.yaml\u003c/code\u003e, not only \u003ccode\u003emkdocs.yml\u003c/code\u003e. Thanks to \u003ca href=\"https://github.com/mgor\"\u003e\u003ccode\u003e@​mgor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/39\"\u003eoprypin/mkdocs-gen-files#39\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMkDocs 1.4.1 is now the lowest supported version -  \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.9 is now the lowest supported version.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ca href=\"https://oprypin.github.io/mkdocs-gen-files/extras.html#programmatically-generating-the-navigation\"\u003enav generator\u003c/a\u003e can support empty paths - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.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/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/1a822d9e0d376d8ecae95fb961144a5af4887ef1\"\u003e\u003ccode\u003e1a822d9\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003e\u003ccode\u003e7baa032\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/6fd0fe048ebf928763458d8dba1a476ca2196117\"\u003e\u003ccode\u003e6fd0fe0\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-include-markdown-plugin` from 7.2.0 to 7.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/releases\"\u003emkdocs-include-markdown-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.2.1\u003c/h2\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize string concatenation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/39df60911e5a5da6cd0cdace89cead96c79636bc\"\u003e\u003ccode\u003e39df609\u003c/code\u003e\u003c/a\u003e Optimize string concatenation across multiple files (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/39fb543b070d00114b2ec72d6373499b74092066\"\u003e\u003ccode\u003e39fb543\u003c/code\u003e\u003c/a\u003e docs(license): update copyright year(s) (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/6fd647f159f346e002e14c175f0b8ea6e67f8144\"\u003e\u003ccode\u003e6fd647f\u003c/code\u003e\u003c/a\u003e Document that filesystem order allows reverse (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/commit/32978ca56cbc343feda9d7e0e448162b272e7f5b\"\u003e\u003ccode\u003e32978ca\u003c/code\u003e\u003c/a\u003e Deduplicate common arguments in documentation (\u003ca href=\"https://redirect.github.com/mondeja/mkdocs-include-markdown-plugin/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mondeja/mkdocs-include-markdown-plugin/compare/v7.2.0...v7.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocstrings` from 0.30.1 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.2\"\u003e1.0.2\u003c/a\u003e - 2026-01-24\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.1...1.0.2\"\u003eCompare with 1.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse global instances for handlers and autorefs (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e9f79141\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.1\"\u003e1.0.1\u003c/a\u003e - 2026-01-19\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.1\"\u003eCompare with 1.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport manual cross-references in Zensical too (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003ed37d907\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eSupport cross-references in Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003ef43f1ee\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/812\"\u003ePR-812\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.0\"\u003e1.0.0\u003c/a\u003e - 2025-11-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.30.1...1.0.0\"\u003eCompare with 0.30.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.name\u003c/code\u003e: \u003cem\u003eAttribute value was changed\u003c/em\u003e: \u003ccode\u003e''\u003c/code\u003e -\u0026gt; unset\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.domain\u003c/code\u003e: \u003cem\u003eAttribute value was changed\u003c/em\u003e: \u003ccode\u003e''\u003c/code\u003e -\u0026gt; unset\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.fallback_config\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(args)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(kwargs)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(theme)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(custom_templates)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(mdx)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(mdx_config)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(args)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(kwargs)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(config)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eHandlers.get_anchors\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.plugin\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.loggers\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.inventory\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.extension\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.handlers\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated code before v1 (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/de34044a02b45250e215af0f969dca581dfb82c5\"\u003ede34044\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpect Zensical to pass extension configuration instead of loading it again from YAML (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/6b73d5a2f455062ab6c68376c85adce6adc037a3\"\u003e6b73d5a\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpose the Markdown extension, to make mkdocstrings compatible with Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/6de266759b79eb72cddd300e6a0a8576085fae40\"\u003e6de2667\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.2\"\u003e1.0.2\u003c/a\u003e - 2026-01-24\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.1...1.0.2\"\u003eCompare with 1.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse global instances for handlers and autorefs (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e9f79141\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.1\"\u003e1.0.1\u003c/a\u003e - 2026-01-19\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.1\"\u003eCompare with 1.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport manual cross-references in Zensical too (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003ed37d907\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eSupport cross-references in Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003ef43f1ee\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/812\"\u003ePR-812\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.0\"\u003e1.0.0\u003c/a\u003e - 2025-11-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.30.1...1.0.0\"\u003eCompare with 0.30.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.name\u003c/code\u003e: \u003cem\u003eAttribute value was changed\u003c/em\u003e: \u003ccode\u003e''\u003c/code\u003e -\u0026gt; unset\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.domain\u003c/code\u003e: \u003cem\u003eAttribute value was changed\u003c/em\u003e: \u003ccode\u003e''\u003c/code\u003e -\u0026gt; unset\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.fallback_config\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(args)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(kwargs)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(theme)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(custom_templates)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(mdx)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.__init__(mdx_config)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(args)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(kwargs)\u003c/code\u003e: \u003cem\u003eParameter was removed\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseHandler.update_env(config)\u003c/code\u003e: \u003cem\u003eParameter was added as required\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eHandlers.get_anchors\u003c/code\u003e: \u003cem\u003ePublic object was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.plugin\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.loggers\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.inventory\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.extension\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emkdocstrings.handlers\u003c/code\u003e: \u003cem\u003ePublic module was removed\u003c/em\u003e (import from \u003ccode\u003emkdocstrings\u003c/code\u003e directly)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated code before v1 (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/de34044a02b45250e215af0f969dca581dfb82c5\"\u003ede34044\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpect Zensical to pass extension configuration instead of loading it again from YAML (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/6b73d5a2f455062ab6c68376c85adce6adc037a3\"\u003e6b73d5a\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpose the Markdown extension, to make mkdocstrings compatible with Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/6de266759b79eb72cddd300e6a0a8576085fae40\"\u003e6de2667\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/4e66617fbe26636f86117c26b2482c21892166fe\"\u003e\u003ccode\u003e4e66617\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e\u003ccode\u003e9f79141\u003c/code\u003e\u003c/a\u003e refactor: Use global instances for handlers and autorefs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/cb8a3c781674b8e23cf0048955d70358d7bab49e\"\u003e\u003ccode\u003ecb8a3c7\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003e\u003ccode\u003ed37d907\u003c/code\u003e\u003c/a\u003e refactor: Support manual cross-references in Zensical too\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/0edd18af00fa5907bb31e8309ecf5ad4309da552\"\u003e\u003ccode\u003e0edd18a\u003c/code\u003e\u003c/a\u003e chore: Clean up after v1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003e\u003ccode\u003ef43f1ee\u003c/code\u003e\u003c/a\u003e refactor: Support cross-references in Zensical\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b6a33e23ba411159253ee44d1b1fa63b9a9a7b7a\"\u003e\u003ccode\u003eb6a33e2\u003c/code\u003e\u003c/a\u003e chore: Update sponsors section in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/afefc0fbccc09f7b6f0c92cf3446434d241f1658\"\u003e\u003ccode\u003eafefc0f\u003c/code\u003e\u003c/a\u003e chore: Fix docs-deploy duty\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/cc54d77f63ecb97c4bcc6fb1b447eddad6e842ce\"\u003e\u003ccode\u003ecc54d77\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/68760a9ec55772c8b330b056c2d0896877324b1c\"\u003e\u003ccode\u003e68760a9\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.30.1...1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocstrings-python` from 1.19.0 to 2.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/python/releases\"\u003emkdocstrings-python's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2025-12-03\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't ignore filters when category grouping is disabled (\u003ca href=\"https://github.com/mkdocstrings/python/commit/63aa1b0af0d14912ebf83a4e3c2cd0c7f2a19dae\"\u003e63aa1b0\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/issues/324\"\u003eIssue-324\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLocalize more contents in templates (\u003ca href=\"https://github.com/mkdocstrings/python/commit/854b6a601bd334fe544285aa9eae11482388a583\"\u003e854b6a6\u003c/a\u003e by Zhikang Yan). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/pull/321\"\u003ePR-321\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove ja/zh translations (\u003ca href=\"https://github.com/mkdocstrings/python/commit/b83107c8e86d9650fe4544e569f6da16a46b8472\"\u003eb83107c\u003c/a\u003e by Zhikang Yan). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/pull/322\"\u003ePR-322\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.0\"\u003e2.0.0\u003c/a\u003e - 2025-11-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/1.19.0...2.0.0\"\u003eCompare with 1.19.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated code for v2 (\u003ca href=\"https://github.com/mkdocstrings/python/commit/c10afdb98d590a23c8840c7c0cdd6c358094dc2c\"\u003ec10afdb\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/python/blob/main/CHANGELOG.md\"\u003emkdocstrings-python's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.1\"\u003e2.0.1\u003c/a\u003e - 2025-12-03\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/2.0.0...2.0.1\"\u003eCompare with 2.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't ignore filters when category grouping is disabled (\u003ca href=\"https://github.com/mkdocstrings/python/commit/63aa1b0af0d14912ebf83a4e3c2cd0c7f2a19dae\"\u003e63aa1b0\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/issues/324\"\u003eIssue-324\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLocalize more contents in templates (\u003ca href=\"https://github.com/mkdocstrings/python/commit/854b6a601bd334fe544285aa9eae11482388a583\"\u003e854b6a6\u003c/a\u003e by Zhikang Yan). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/pull/321\"\u003ePR-321\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove ja/zh translations (\u003ca href=\"https://github.com/mkdocstrings/python/commit/b83107c8e86d9650fe4544e569f6da16a46b8472\"\u003eb83107c\u003c/a\u003e by Zhikang Yan). \u003ca href=\"https://redirect.github.com/mkdocstrings/python/pull/322\"\u003ePR-322\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/python/releases/tag/2.0.0\"\u003e2.0.0\u003c/a\u003e - 2025-11-27\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/python/compare/1.19.0...2.0.0\"\u003eCompare with 1.19.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deprecated code for v2 (\u003ca href=\"https://github.com/mkdocstrings/python/commit/c10afdb98d590a23c8840c7c0cdd6c358094dc2c\"\u003ec10afdb\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/6e7b971e2174eeba885b61ed0a348a9202ffe5ab\"\u003e\u003ccode\u003e6e7b971\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/854b6a601bd334fe544285aa9eae11482388a583\"\u003e\u003ccode\u003e854b6a6\u003c/code\u003e\u003c/a\u003e refactor: Localize more contents in templates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/b83107c8e86d9650fe4544e569f6da16a46b8472\"\u003e\u003ccode\u003eb83107c\u003c/code\u003e\u003c/a\u003e refactor: Improve ja/zh translations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/63aa1b0af0d14912ebf83a4e3c2cd0c7f2a19dae\"\u003e\u003ccode\u003e63aa1b0\u003c/code\u003e\u003c/a\u003e fix: Don't ignore filters when category grouping is disabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/76c08aca4ea57e1d2eda038fee53f3dd5f15e711\"\u003e\u003ccode\u003e76c08ac\u003c/code\u003e\u003c/a\u003e docs: Fix cross-reference\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/50d135aa5621ecd424697f198fb6739a3cf16d44\"\u003e\u003ccode\u003e50d135a\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/2b7db124acddd3505d711cd03d8781fb8e3ba492\"\u003e\u003ccode\u003e2b7db12\u003c/code\u003e\u003c/a\u003e chore: Prepare release 2.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/1a38a243409b3f2ce2989ca2422fe9fe2ea25d2a\"\u003e\u003ccode\u003e1a38a24\u003c/code\u003e\u003c/a\u003e docs: Remove funding banner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/c10afdb98d590a23c8840c7c0cdd6c358094dc2c\"\u003e\u003ccode\u003ec10afdb\u003c/code\u003e\u003c/a\u003e refactor: Remove deprecated code for v2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/python/commit/b5ef2f3ae1218f7003bbb4a734c3f5ef00d59843\"\u003e\u003ccode\u003eb5ef2f3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:mkdocstrings/python\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/python/compare/1.19.0...2.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `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 `pymdown-extensions` from 10.20 to 10.20.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.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 `pytest` from 8.4.2 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#...\n\n_Description has been truncated_","html_url":"https://github.com/tektronix/tm_data_types/pull/147","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tektronix%2Ftm_data_types/issues/147","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/147/packages"}},{"old_version":"0.5.0","new_version":"0.6.0","update_type":"minor","path":null,"pr_created_at":"2026-01-24T20:30:08.000Z","version_change":"0.5.0 → 0.6.0","issue":{"uuid":"3852009129","node_id":"PR_kwDOQp5_d86_K_Kn","number":8,"state":"closed","title":"Bump the dev-tools group with 6 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-14T20:26:51.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-24T20:30:08.000Z","updated_at":"2026-02-14T20:26:53.000Z","time_to_close":1814203,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dev-tools","update_count":6,"packages":[{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-asyncio","old_version":"0.23.8","new_version":"0.23.3","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"ruff","old_version":"0.14.13","new_version":"0.14.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mkdocstrings","old_version":"1.0.0","new_version":"1.0.2","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"mkdocs-gen-files","old_version":"0.5.0","new_version":"0.6.0","repository_url":"https://github.com/oprypin/mkdocs-gen-files"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-tools group with 6 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.23.8` | `0.23.3` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.13` | `0.14.14` |\n| [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) | `1.0.0` | `1.0.2` |\n| [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files) | `0.5.0` | `0.6.0` |\n\nUpdates `pytest` from 8.4.2 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 4.1.0 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\u003ch2\u003e6.2.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a version requirement for pytest's pluggy dependency (1.2.0, released 2023-06-21) that has the required new-style hookwrapper API.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved deprecated license classifier (packaging).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDisabled coverage warnings in two more situations where they have no value:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026quot;module-not-measured\u0026quot; in workers\u003c/li\u003e\n\u003cli\u003e\u0026quot;already-imported\u0026quot; in subprocesses\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.0 (2025-06-11)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe plugin now adds 3 rules in the filter warnings configuration to prevent common coverage warnings being raised as obscure errors::\u003c/p\u003e\n\u003cp\u003edefault:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\nonce::PytestCovWarning\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-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/v4.1.0...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 0.23.8 to 0.23.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/260b79185b198bad96a8fb2abc607a91ad8a5490\"\u003e\u003ccode\u003e260b791\u003c/code\u003e\u003c/a\u003e [docs] Prepare release of v0.23.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/6a253e20fb174b6750075a6cfdd9409e4c6221f5\"\u003e\u003ccode\u003e6a253e2\u003c/code\u003e\u003c/a\u003e [docs] Shorten changelog by combining multiple issues.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/e2cbb906c5124df131abe39c447c5486aae913be\"\u003e\u003ccode\u003ee2cbb90\u003c/code\u003e\u003c/a\u003e [docs] Mention correct issue in changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/0c522bff1525e77ff75691ee7530c71fe63e2775\"\u003e\u003ccode\u003e0c522bf\u003c/code\u003e\u003c/a\u003e [fix] Fixes a bug that caused an internal pytest error when using ImportWarni...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/31c7e6f9acda156a7aabf23d18e88c23f5f897a4\"\u003e\u003ccode\u003e31c7e6f\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.3.3 to 7.3.4 in /dependencies/default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/38d5c7eed0d5193752043631aabde287d0627127\"\u003e\u003ccode\u003e38d5c7e\u003c/code\u003e\u003c/a\u003e Build(deps): Bump sphinx-rtd-theme in /dependencies/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/650ec5875dcefc4eb4c1b2b0ba792aa643cd0823\"\u003e\u003ccode\u003e650ec58\u003c/code\u003e\u003c/a\u003e Build(deps): Bump babel from 2.13.1 to 2.14.0 in /dependencies/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/0166a7e55fd5ac31afdaffd7dd54e77003f6cc30\"\u003e\u003ccode\u003e0166a7e\u003c/code\u003e\u003c/a\u003e Build(deps): Bump typing-extensions in /dependencies/default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/3a15f3039c2b0101b73af651e8b9c667b1a51434\"\u003e\u003ccode\u003e3a15f30\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.3.2 to 7.3.3 in /dependencies/default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/28e91f00cd59d8aca364e6041f898cde8239b4e6\"\u003e\u003ccode\u003e28e91f0\u003c/code\u003e\u003c/a\u003e Build(deps): Bump hypothesis in /dependencies/default\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v0.23.8...v0.23.3\"\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.13 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.13...0.14.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocstrings` from 1.0.0 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.2\"\u003e1.0.2\u003c/a\u003e - 2026-01-24\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.1...1.0.2\"\u003eCompare with 1.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse global instances for handlers and autorefs (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e9f79141\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.1\"\u003e1.0.1\u003c/a\u003e - 2026-01-19\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.1\"\u003eCompare with 1.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport manual cross-references in Zensical too (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003ed37d907\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eSupport cross-references in Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003ef43f1ee\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/812\"\u003ePR-812\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/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.2\"\u003e1.0.2\u003c/a\u003e - 2026-01-24\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.1...1.0.2\"\u003eCompare with 1.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse global instances for handlers and autorefs (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e9f79141\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.1\"\u003e1.0.1\u003c/a\u003e - 2026-01-19\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.1\"\u003eCompare with 1.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport manual cross-references in Zensical too (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003ed37d907\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eSupport cross-references in Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003ef43f1ee\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/812\"\u003ePR-812\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/mkdocstrings/mkdocstrings/commit/4e66617fbe26636f86117c26b2482c21892166fe\"\u003e\u003ccode\u003e4e66617\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e\u003ccode\u003e9f79141\u003c/code\u003e\u003c/a\u003e refactor: Use global instances for handlers and autorefs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/cb8a3c781674b8e23cf0048955d70358d7bab49e\"\u003e\u003ccode\u003ecb8a3c7\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003e\u003ccode\u003ed37d907\u003c/code\u003e\u003c/a\u003e refactor: Support manual cross-references in Zensical too\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/0edd18af00fa5907bb31e8309ecf5ad4309da552\"\u003e\u003ccode\u003e0edd18a\u003c/code\u003e\u003c/a\u003e chore: Clean up after v1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003e\u003ccode\u003ef43f1ee\u003c/code\u003e\u003c/a\u003e refactor: Support cross-references in Zensical\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b6a33e23ba411159253ee44d1b1fa63b9a9a7b7a\"\u003e\u003ccode\u003eb6a33e2\u003c/code\u003e\u003c/a\u003e chore: Update sponsors section in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/afefc0fbccc09f7b6f0c92cf3446434d241f1658\"\u003e\u003ccode\u003eafefc0f\u003c/code\u003e\u003c/a\u003e chore: Fix docs-deploy duty\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/cc54d77f63ecb97c4bcc6fb1b447eddad6e842ce\"\u003e\u003ccode\u003ecc54d77\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.5.0 to 0.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompatibility with MkDocs 1.6 is improved - generated files don't have to have an \u003ccode\u003eabs_src_path\u003c/code\u003e - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThere was a bug: using \u003ccode\u003eedit_uri_template\u003c/code\u003e in MkDocs would prevent \u003ccode\u003eset_edit_path()\u003c/code\u003e from working.\nThis is now fixed - \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/37\"\u003e#37\u003c/a\u003e - thanks to \u003ca href=\"https://github.com/frankkusters\"\u003e\u003ccode\u003e@​frankkusters\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe MkDocs configuration file now can be \u003ccode\u003emkdocs.yaml\u003c/code\u003e, not only \u003ccode\u003emkdocs.yml\u003c/code\u003e. Thanks to \u003ca href=\"https://github.com/mgor\"\u003e\u003ccode\u003e@​mgor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/39\"\u003eoprypin/mkdocs-gen-files#39\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMkDocs 1.4.1 is now the lowest supported version -  \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.9 is now the lowest supported version.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ca href=\"https://oprypin.github.io/mkdocs-gen-files/extras.html#programmatically-generating-the-navigation\"\u003enav generator\u003c/a\u003e can support empty paths - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.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/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/1a822d9e0d376d8ecae95fb961144a5af4887ef1\"\u003e\u003ccode\u003e1a822d9\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003e\u003ccode\u003e7baa032\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/6fd0fe048ebf928763458d8dba1a476ca2196117\"\u003e\u003ccode\u003e6fd0fe0\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.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/vittoriomussin/agent-cover/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vittoriomussin%2Fagent-cover/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"}},{"old_version":"0.5.0","new_version":"0.6.0","update_type":"minor","path":null,"pr_created_at":"2026-01-13T03:57:33.000Z","version_change":"0.5.0 → 0.6.0","issue":{"uuid":"3806974857","node_id":"PR_kwDOMFeY88681YFA","number":142,"state":"open","title":"python-deps(deps): bump the python-dependencies group across 1 directory with 20 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["dependabot[bot]"],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-13T03:57:33.000Z","updated_at":"2026-01-13T05:15:14.589Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"python-deps(deps): bump","group_name":"python-dependencies","update_count":20,"packages":[{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"black","old_version":"25.9.0","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"mkdocs-gen-files","old_version":"0.5.0","new_version":"0.6.0","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-macros-plugin","old_version":"1.4.0","new_version":"1.5.0","repository_url":"https://github.com/fralau/mkdocs_macros_plugin"},{"name":"mkdocs-mermaid2-plugin","old_version":"1.2.2","new_version":"1.2.3","repository_url":"https://github.com/fralau/mkdocs-mermaid2-plugin"},{"name":"pymdown-extensions","old_version":"10.16.1","new_version":"10.20","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"beautifulsoup4","old_version":"4.14.2","new_version":"4.14.3"},{"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":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"importlib-metadata","old_version":"8.7.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"pathspec","old_version":"0.12.1","new_version":"1.0.3","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"pytokens","old_version":"0.1.10","new_version":"0.3.0","repository_url":"https://github.com/tusharsadhwani/pytokens"},{"name":"soupsieve","old_version":"2.8","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"super-collections","old_version":"0.6.0","new_version":"0.6.2","repository_url":"https://github.com/fralau/super-collections"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [nodeenv](https://github.com/ekalinin/nodeenv), [pylint](https://github.com/pylint-dev/pylint), [pyright](https://github.com/RobertCraigie/pyright-python), [black](https://github.com/psf/black), [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files), [mkdocs-macros-plugin](https://github.com/fralau/mkdocs_macros_plugin), [mkdocs-mermaid2-plugin](https://github.com/fralau/mkdocs-mermaid2-plugin), [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions), [tomli](https://github.com/hukkin/tomli), [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/), [certifi](https://github.com/certifi/python-certifi), [charset-normalizer](https://github.com/jawah/charset_normalizer), [idna](https://github.com/kjd/idna), [importlib-metadata](https://github.com/python/importlib_metadata), [pathspec](https://github.com/cpburnz/python-pathspec), [pytokens](https://github.com/tusharsadhwani/pytokens), [soupsieve](https://github.com/facelessuser/soupsieve), [super-collections](https://github.com/fralau/super-collections), [urllib3](https://github.com/urllib3/urllib3) and [exceptiongroup](https://github.com/agronholm/exceptiongroup) to permit the latest version.\nUpdates `nodeenv` from 1.9.1 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ekalinin/nodeenv/releases\"\u003enodeenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.10.0 - drop\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixed bugs 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse lowercase lookup for archmap by \u003ca href=\"https://github.com/robmoss2k\"\u003e\u003ccode\u003e@​robmoss2k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/382\"\u003eekalinin/nodeenv#382\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/367\"\u003eekalinin/nodeenv#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd UV Virtual Environment support by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/386\"\u003eekalinin/nodeenv#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sh instead of bash by \u003ca href=\"https://github.com/WhyNotHugo\"\u003e\u003ccode\u003e@​WhyNotHugo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/389\"\u003eekalinin/nodeenv#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace additional use of \u003ccode\u003ewhich(1)\u003c/code\u003e with \u003ccode\u003eshutil.which()\u003c/code\u003e by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/355\"\u003eekalinin/nodeenv#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport leading \u003ccode\u003ev\u003c/code\u003e in \u003ccode\u003e.node-version\u003c/code\u003e by \u003ca href=\"https://github.com/nix6839\"\u003e\u003ccode\u003e@​nix6839\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/359\"\u003eekalinin/nodeenv#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck host platform when finding \u003ccode\u003enode\u003c/code\u003e version by \u003ca href=\"https://github.com/max0x53\"\u003e\u003ccode\u003e@​max0x53\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/363\"\u003eekalinin/nodeenv#363\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/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/367\"\u003eekalinin/nodeenv#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nix6839\"\u003e\u003ccode\u003e@​nix6839\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/359\"\u003eekalinin/nodeenv#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/max0x53\"\u003e\u003ccode\u003e@​max0x53\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/363\"\u003eekalinin/nodeenv#363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robmoss2k\"\u003e\u003ccode\u003e@​robmoss2k\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/382\"\u003eekalinin/nodeenv#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/386\"\u003eekalinin/nodeenv#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/WhyNotHugo\"\u003e\u003ccode\u003e@​WhyNotHugo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/389\"\u003eekalinin/nodeenv#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/355\"\u003eekalinin/nodeenv#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.0\"\u003ehttps://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.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/ekalinin/nodeenv/commit/9dee547f5e45c9d1b155e4351d165f2b504ae281\"\u003e\u003ccode\u003e9dee547\u003c/code\u003e\u003c/a\u003e chore: bump nodeenv version to 1.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/d45aabbf54139f5ecbaf9db05d3949d39999136e\"\u003e\u003ccode\u003ed45aabb\u003c/code\u003e\u003c/a\u003e chore: add pyright ignore comments for compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/55d6c21a6d56631c0c1d08a04d3c1ea3531ba832\"\u003e\u003ccode\u003e55d6c21\u003c/code\u003e\u003c/a\u003e chore: update AUTHORS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/5f694e6ac261f29233a28061e4af64669199721e\"\u003e\u003ccode\u003e5f694e6\u003c/code\u003e\u003c/a\u003e test: update test test_node_system_creates_shim\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/fa3fdfb1bf807d869795f5bf690359808cb5c529\"\u003e\u003ccode\u003efa3fdfb\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:ekalinin/nodeenv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/e868dbe29cad74819615d039b78af21bb2ae431d\"\u003e\u003ccode\u003ee868dbe\u003c/code\u003e\u003c/a\u003e Replace additional use of \u003ccode\u003ewhich(1)\u003c/code\u003e with \u003ccode\u003eshutil.which()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/b4cd00d453d9f4772c7c410dfbc57d7e757dad5e\"\u003e\u003ccode\u003eb4cd00d\u003c/code\u003e\u003c/a\u003e test: enhance activation tests for nodeenv with custom prompts and file handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/0b5ea9d55ad72ef30a5a7461e27b95c9453bd833\"\u003e\u003ccode\u003e0b5ea9d\u003c/code\u003e\u003c/a\u003e refactor(tests): improve readability of mock patches in nodeenv tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/37c0c304317b9a5646e1779d38b71c4c6928a0a5\"\u003e\u003ccode\u003e37c0c30\u003c/code\u003e\u003c/a\u003e ci: add GH workflow for testing and coverage in PR\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/326a7a4c1ced11fb3356cdd2c8511f9cdeb81ebc\"\u003e\u003ccode\u003e326a7a4\u003c/code\u003e\u003c/a\u003e test: add comprehensive tests for install_npm and install_npm_win functions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pylint` to 3.3.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/4cab7ca4eae88b75960fcf2479b8ddd377dd4ce2\"\u003e\u003ccode\u003e4cab7ca\u003c/code\u003e\u003c/a\u003e Bump pylint to 3.3.9, update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/81fb483fdeaa343bae73a72dadcf29c2c70ee41e\"\u003e\u003ccode\u003e81fb483\u003c/code\u003e\u003c/a\u003e [Backport maintenance/3.3.x] Extend catching of ValueError to 3.12.5+ (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10611\"\u003e#10611\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/1ef673b1fbfedf5575046376397885c046abd70a\"\u003e\u003ccode\u003e1ef673b\u003c/code\u003e\u003c/a\u003e [Backport maintenance/3.3.x] Fix flagging undeprecated importlib.resources fu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/194790c65856b282389e9754b6a0f4c98f05f9a5\"\u003e\u003ccode\u003e194790c\u003c/code\u003e\u003c/a\u003e Fix invalid refs in 3.3 whatsnew (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10578\"\u003e#10578\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10579\"\u003e#10579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/98238705507065c20bf62eb0ddbe021d44f9b111\"\u003e\u003ccode\u003e9823870\u003c/code\u003e\u003c/a\u003e fix: handle \u003ccode\u003einconsistent-return-statements\u003c/code\u003e false positive with \u003ccode\u003equit()\u003c/code\u003e/`ex...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/16fe1270fecf08a9b79483b9c9954adbe1a9d3e6\"\u003e\u003ccode\u003e16fe127\u003c/code\u003e\u003c/a\u003e fix: handle for-loop variable shadowing correctly (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10569\"\u003e#10569\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10571\"\u003e#10571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/6cf727cbf982f5d75c9a0162bcb493799f15896e\"\u003e\u003ccode\u003e6cf727c\u003c/code\u003e\u003c/a\u003e Add sphinx reference for whatsnew 3.3 (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10564\"\u003e#10564\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10565\"\u003e#10565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/641a316c3c9c9e0c32f5289445344ad6595c7b53\"\u003e\u003ccode\u003e641a316\u003c/code\u003e\u003c/a\u003e Use custom backport action (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10536\"\u003e#10536\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10537\"\u003e#10537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/65efb677aa3b74088c9f35293138ea2435f925a7\"\u003e\u003ccode\u003e65efb67\u003c/code\u003e\u003c/a\u003e [fix] Better approach in 'unnecessary-list-index-lookup' to avoid crashes (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/78444bb70696fbeee3df56f2fb9f36fed89b4971\"\u003e\u003ccode\u003e78444bb\u003c/code\u003e\u003c/a\u003e Fix used-before-assignment for PEP 695 type aliases + parameters (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10488\"\u003e#10488\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pylint-dev/pylint/compare/v3.3.8...v3.3.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` to 1.1.408\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/81b795a41ddcc3c77218d8c8e406983e39852285\"\u003e\u003ccode\u003e81b795a\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.408 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/53e8efb4638daca6c541d18ad35dafb0e5d9f34d\"\u003e\u003ccode\u003e53e8efb\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.407 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/1d515b71299f9dc4c066ce37e673d93bda4bc2df\"\u003e\u003ccode\u003e1d515b7\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.406 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.405...v1.1.408\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 25.9.0 to 25.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where python 3.12 generics syntax split line happens weirdly (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize type comments to form \u003ccode\u003e# type: \u0026lt;value\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e preview feature to respect \u003ccode\u003e# fmt: skip\u003c/code\u003e for compound\nstatements with semicolon-separated bodies (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eno_cache\u003c/code\u003e option to control caching behavior. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4803\"\u003e#4803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Linux binaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4773\"\u003e#4773\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWrite unchanged content to stdout when excluding formatting from stdin using pipes\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented BlackDClient. This simple python client allows to easily send formatting\nrequests to blackd (\u003ca href=\"https://redirect.github.com/psf/black/issues/4774\"\u003e#4774\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable 3.14 base CI (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to support the \u003ccode\u003erequired-version\u003c/code\u003e major-version-only\n\u0026quot;stability\u0026quot; format when using pyproject.toml (\u003ca href=\"https://redirect.github.com/psf/black/issues/4770\"\u003e#4770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for vim plugin users. It now handles independently vim version\u003c/li\u003e\n\u003cli\u003eVim: Warn on unsupported Vim and Python versions independently (\u003ca href=\"https://redirect.github.com/psf/black/issues/4772\"\u003e#4772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Print the import paths when importing black fails (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Fix handling of virtualenvs that have a different Python version (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where python 3.12 generics syntax split line happens weirdly (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize type comments to form \u003ccode\u003e# type: \u0026lt;value\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e preview feature to respect \u003ccode\u003e# fmt: skip\u003c/code\u003e for compound\nstatements with semicolon-separated bodies (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eno_cache\u003c/code\u003e option to control caching behavior. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4803\"\u003e#4803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Linux binaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4773\"\u003e#4773\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWrite unchanged content to stdout when excluding formatting from stdin using pipes\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented BlackDClient. This simple python client allows to easily send formatting\nrequests to blackd (\u003ca href=\"https://redirect.github.com/psf/black/issues/4774\"\u003e#4774\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable 3.14 base CI (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to support the \u003ccode\u003erequired-version\u003c/code\u003e major-version-only\n\u0026quot;stability\u0026quot; format when using pyproject.toml (\u003ca href=\"https://redirect.github.com/psf/black/issues/4770\"\u003e#4770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for vim plugin users. It now handles independently vim version\u003c/li\u003e\n\u003cli\u003eVim: Warn on unsupported Vim and Python versions independently (\u003ca href=\"https://redirect.github.com/psf/black/issues/4772\"\u003e#4772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Print the import paths when importing black fails (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Fix handling of virtualenvs that have a different Python version (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/05f0a8ce1f71fbb36e1e032d3b518c7b945089a2\"\u003e\u003ccode\u003e05f0a8c\u003c/code\u003e\u003c/a\u003e Prepare for 25.11.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4825\"\u003e#4825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ae17c61310e44401ca55d17a9c01db1dc03940a6\"\u003e\u003ccode\u003eae17c61\u003c/code\u003e\u003c/a\u003e Fix tests on pytest 9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4835\"\u003e#4835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/138745eca650aa59ab30458f7b1c026b66608a09\"\u003e\u003ccode\u003e138745e\u003c/code\u003e\u003c/a\u003e Include Windows and Python 3.14 in PR wheel build matrix, fix Windows build (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/18170d6d8d9bdde97d4cd3568cfa8be434a09ff3\"\u003e\u003ccode\u003e18170d6\u003c/code\u003e\u003c/a\u003e ci: add label for running all builds on a pull request (\u003ca href=\"https://redirect.github.com/psf/black/issues/4833\"\u003e#4833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0e793e3d7e0d12dbda1573fa1bb785b1f066ee7c\"\u003e\u003ccode\u003e0e793e3\u003c/code\u003e\u003c/a\u003e fix windows wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4830\"\u003e#4830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b71f36c9fda07930c83e22681e0ec08ddf5a3980\"\u003e\u003ccode\u003eb71f36c\u003c/code\u003e\u003c/a\u003e Use build[uv] as cibuildwheel frontend (\u003ca href=\"https://redirect.github.com/psf/black/issues/4831\"\u003e#4831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a7bd594493bb5cb703beee877a2df40556b0baaa\"\u003e\u003ccode\u003ea7bd594\u003c/code\u003e\u003c/a\u003e Skip free threaded builds in cibuildwheel (\u003ca href=\"https://redirect.github.com/psf/black/issues/4829\"\u003e#4829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/862dee91fa1259ca2bc00f10538b52a4959bdbe8\"\u003e\u003ccode\u003e862dee9\u003c/code\u003e\u003c/a\u003e Update cibuildwheel (\u003ca href=\"https://redirect.github.com/psf/black/issues/4828\"\u003e#4828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b5f354c56627640e0b853af51a51d9262bafa9f0\"\u003e\u003ccode\u003eb5f354c\u003c/code\u003e\u003c/a\u003e build: restrict to pytest 9.0 due to breakage in custom pytest_configure (\u003ca href=\"https://redirect.github.com/psf/black/issues/4827\"\u003e#4827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f705197f57149b79ed83cccf22e4fed19b48a7bf\"\u003e\u003ccode\u003ef705197\u003c/code\u003e\u003c/a\u003e t-string support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.9.0...25.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.5.0 to 0.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompatibility with MkDocs 1.6 is improved - generated files don't have to have an \u003ccode\u003eabs_src_path\u003c/code\u003e - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThere was a bug: using \u003ccode\u003eedit_uri_template\u003c/code\u003e in MkDocs would prevent \u003ccode\u003eset_edit_path()\u003c/code\u003e from working.\nThis is now fixed - \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/37\"\u003e#37\u003c/a\u003e - thanks to \u003ca href=\"https://github.com/frankkusters\"\u003e\u003ccode\u003e@​frankkusters\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe MkDocs configuration file now can be \u003ccode\u003emkdocs.yaml\u003c/code\u003e, not only \u003ccode\u003emkdocs.yml\u003c/code\u003e. Thanks to \u003ca href=\"https://github.com/mgor\"\u003e\u003ccode\u003e@​mgor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/39\"\u003eoprypin/mkdocs-gen-files#39\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMkDocs 1.4.1 is now the lowest supported version -  \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.9 is now the lowest supported version.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ca href=\"https://oprypin.github.io/mkdocs-gen-files/extras.html#programmatically-generating-the-navigation\"\u003enav generator\u003c/a\u003e can support empty paths - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.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/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/1a822d9e0d376d8ecae95fb961144a5af4887ef1\"\u003e\u003ccode\u003e1a822d9\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003e\u003ccode\u003e7baa032\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/6fd0fe048ebf928763458d8dba1a476ca2196117\"\u003e\u003ccode\u003e6fd0fe0\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-macros-plugin` from 1.4.0 to 1.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/blob/master/CHANGELOG.md\"\u003emkdocs-macros-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.0, 2025-11-13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: For each push, testing on github for versions Python 3.8 to 3.12\u003c/li\u003e\n\u003cli\u003eFixed: bug in import of packages when not in source dir (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.1, 2025-10-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: support for j2_extensions paramater in config file (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed: missing dependency declaration on \u003ccode\u003erequests\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/0536f4da1dc643e1fa1f0cc90e71512ada67dc04\"\u003e\u003ccode\u003e0536f4d\u003c/code\u003e\u003c/a\u003e Fix type hint for compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/d9a6bc3aac5b12b86f9e2be7af18e1e9178287f6\"\u003e\u003ccode\u003ed9a6bc3\u003c/code\u003e\u003c/a\u003e Require mkdocs-test\u0026gt;=0.6.0 (compatibility with Python 3.8 and 3.9)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/bcaa72db2820d60822ffba15e87c75669abc7b92\"\u003e\u003ccode\u003ebcaa72d\u003c/code\u003e\u003c/a\u003e Make last minute corrections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/356fc2a5b55d1897a2f2c47856d52b10cff4611c\"\u003e\u003ccode\u003e356fc2a\u003c/code\u003e\u003c/a\u003e Prepare for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/aaf16bdcb9dfcb9c6ea9b6567ea4af7f8c178185\"\u003e\u003ccode\u003eaaf16bd\u003c/code\u003e\u003c/a\u003e Limit testing to 3.10 up (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/ba5356c0c263355556aa82dad0fbfde3cce4bc4d\"\u003e\u003ccode\u003eba5356c\u003c/code\u003e\u003c/a\u003e Use proper exit for pytest if Python \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/6c796600bc0886696ce9b76b84354d7e2bc1b6fa\"\u003e\u003ccode\u003e6c79660\u003c/code\u003e\u003c/a\u003e Skip test_modules.py if Python version \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cec7440d46589b303d741a5e2df0a240c25b9bdb\"\u003e\u003ccode\u003ecec7440\u003c/code\u003e\u003c/a\u003e Test installation of d2 in a cross-platform way (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/492759c5ab3d05f7c55ec62ffdf9573b715ac6ed\"\u003e\u003ccode\u003e492759c\u003c/code\u003e\u003c/a\u003e Update with changes from local repo (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cc5416834a07ffd2ba1fe3d917a701ac6e9c98ad\"\u003e\u003ccode\u003ecc54168\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:fralau/mkdocs_macros_plugin\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fralau/mkdocs_macros_plugin/compare/v1.4.0...v1.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-mermaid2-plugin` from 1.2.2 to 1.2.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/blob/master/CHANGELOG.md\"\u003emkdocs-mermaid2-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.3, 2025-10-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: documented the use of variables and macros with MkDocs-Macros\nin Tips and Tricks (\u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/123\"\u003e#123\u003c/a\u003e); dividing the the page into 3 sections.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/59498d0c537c7dc660cd362fd887464e9ec027ed\"\u003e\u003ccode\u003e59498d0\u003c/code\u003e\u003c/a\u003e Reorganize Tips and Tricks page\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/0304ac52c8a9dd256d899b24101da90aa3e901ae\"\u003e\u003ccode\u003e0304ac5\u003c/code\u003e\u003c/a\u003e Improve documentation of how to use Mkdocs-Macros (\u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/123\"\u003e#123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/d1cf04b27eace33b2004dc1c68f9536cf6d4b397\"\u003e\u003ccode\u003ed1cf04b\u003c/code\u003e\u003c/a\u003e Insert suggestion to use MkDocs-Macros for variables and macros\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/compare/v1.2.2...v1.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymdown-extensions` from 10.16.1 to 10.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/releases\"\u003epymdown-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e10.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Quotes: New blockquotes extension added that uses a more modern approach when compared to Python Markdown's\ndefault. Quotes specifically will not group consecutive blockquotes together in the same lazy fashion that the\ndefault Python Markdown does which follows a more modern trend to how parsers these days handle block quotes.\u003c/p\u003e\n\u003cp\u003eIn addition, Quotes also provides an optional feature to enable specifying callouts/alerts in the style used by\nGitHub and Obsidian.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.19.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Arithmatex: Fix issue where block \u003ccode\u003e$$\u003c/code\u003e math used inline within a paragraph could result in nested math\nparsing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Emoji: Update Twemoji to use Unicode 16.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Critic: Roll back \u003ccode\u003eview\u003c/code\u003e mode deprecation as some still like to use it, though further enhancements to this\nmode are not planned.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Critic: \u003ccode\u003eview\u003c/code\u003e mode has been deprecated. To avoid warnings or future issues, explicitly set \u003ccode\u003emode\u003c/code\u003e to\neither \u003ccode\u003eaccept\u003c/code\u003e or \u003ccode\u003ereject\u003c/code\u003e. In the future, the new default will be \u003ccode\u003eaccept\u003c/code\u003e and the \u003ccode\u003eview\u003c/code\u003e mode will be removed\nentirely.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Block Admonition: \u003ccode\u003eimportant\u003c/code\u003e should have always been available as a default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.17.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Blocks: Blocks extensions will now better handle nesting of indented style Admonitions, Details, and Tabbed\nand other non-conflicting blocks.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.17.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix an issue where Highlight can override another extension in the \u0026quot;registered\u0026quot; list in Python Markdown.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Allow specifying static IDs in caption block headers via \u003ccode\u003e#id\u003c/code\u003e syntax.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/7d5c4be60578aefef323126467576eaff1e5e354\"\u003e\u003ccode\u003e7d5c4be\u003c/code\u003e\u003c/a\u003e Quotes: Add nesting examples, fix some grammar, and add nesting test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/9d5b64ac9b2c52b067951d9d83eefed54173ce23\"\u003e\u003ccode\u003e9d5b64a\u003c/code\u003e\u003c/a\u003e Update notes about the new callouts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/531a77a36150a0dc1c9076271fb399a3ffbf856c\"\u003e\u003ccode\u003e531a77a\u003c/code\u003e\u003c/a\u003e Docs: make line number hover stand out more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/0d7be849125bc2266fe7430f6be85ea467f9b088\"\u003e\u003ccode\u003e0d7be84\u003c/code\u003e\u003c/a\u003e Revert change to line wrapping\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/6f9cb091e6e464951ddcff7978f1b04244089694\"\u003e\u003ccode\u003e6f9cb09\u003c/code\u003e\u003c/a\u003e Wrap lines table format as well and adjust docs theme line highlight\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/97f716600719399d412c616092361001f80329d8\"\u003e\u003ccode\u003e97f7166\u003c/code\u003e\u003c/a\u003e Wrap Pygments lines with \u0026lt;span\u0026gt; to allow for better styling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/ad0d49397f5ea64e8c9714eb56471cb54eecd0a7\"\u003e\u003ccode\u003ead0d493\u003c/code\u003e\u003c/a\u003e Update map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/753ddde120b645e45c71b00214023ed9a3e0a7cd\"\u003e\u003ccode\u003e753ddde\u003c/code\u003e\u003c/a\u003e Tweak admonition colors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/7e686eed2f31ab1a96f90ce1dd919bc68f5794a1\"\u003e\u003ccode\u003e7e686ee\u003c/code\u003e\u003c/a\u003e Docs: Update JS deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/2703d81bc90226e46f7eb61894c4552e9543d69a\"\u003e\u003ccode\u003e2703d81\u003c/code\u003e\u003c/a\u003e Add custom blockquote extension (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/compare/10.16.1...10.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tomli` from 2.2.1 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\u003ch2\u003e2.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eBinary wheels for Python 3.14 (also free-threaded)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePerformance\n\u003cul\u003e\n\u003cli\u003eReduced import time\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.2.1...2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.14.2 to 4.14.3\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 `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 `importlib-metadata` from 8.7.0 to 8.7.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev8.7.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed errors in FastPath under fork-multiprocessing. (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved cruft from Python 3.8. (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/84e9028d39062af975d0659c0e987c28bcc808a5\"\u003e\u003ccode\u003e84e9028\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/36ed6f69888bba8cbabd3963714630ead6bdb762\"\u003e\u003ccode\u003e36ed6f6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/521\"\u003e#521\u003c/a\u003e from 2xB/fix520\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/f6eee5671a3e9e1cb56a6d3a6219145c19518713\"\u003e\u003ccode\u003ef6eee56\u003c/code\u003e\u003c/a\u003e Rely on passthrough to designate a wrapper for its side effect.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/3c9510bf848fd4031e76028da0c9f60129047546\"\u003e\u003ccode\u003e3c9510b\u003c/code\u003e\u003c/a\u003e Prefer noop for degenerate behavior.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/a36bab926643dcd67513851d5bebc285ef9ac681\"\u003e\u003ccode\u003ea36bab9\u003c/code\u003e\u003c/a\u003e Avoid if block.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/8dd2937cf852eb0d9ad96d4e45ed3470e80c1463\"\u003e\u003ccode\u003e8dd2937\u003c/code\u003e\u003c/a\u003e Decouple clear_after_fork from lru_cache and then compose.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/1da3f456ab53832fd6e1236f2338388d9ea0b0c6\"\u003e\u003ccode\u003e1da3f45\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/a1c25d8f2dc50abec65e4cf6d733b15d73c2f3b1\"\u003e\u003ccode\u003ea1c25d8\u003c/code\u003e\u003c/a\u003e 🧎‍♀️ Genuflect to the types.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/4e962a8498990ba82120e7a58ce71abedefa0003\"\u003e\u003ccode\u003e4e962a8\u003c/code\u003e\u003c/a\u003e 👹 Feed the hobgoblins (delint).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/6a30ab96290b18c0b9805268a201ca5011c1feae\"\u003e\u003ccode\u003e6a30ab9\u003c/code\u003e\u003c/a\u003e Allow initial currsize to be greater than one (as happens when running the te...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v8.7.0...v8.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pathspec` from 0.12.1 to 1.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cpburnz/python-pathspec/releases\"\u003epathspec's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.3\u003c/h2\u003e\n\u003cp\u003eRelease v1.0.3. See \u003ca href=\"https://github.com/cpburnz/python-pathspec/blob/v1.0.3/CHANGES.rst\"\u003eCHANGES.rst\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev1.0.2\u003c/h2\u003e\n\u003cp\u003eRelease v1.0.2. See \u003ca href=\"https://github.com/cpburnz/python-pathspec/blob/v1.0.2/CHANGES.rst\"\u003eCHANGES.rst\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cp\u003eRelease v1.0.1. See \u003ca href=\"https://github.com/cpburnz/python-pathspec/blob/v1.0.1/CHANGES.rst\"\u003eCHANGES.rst\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eRelease v1.0.0. See \u003ca href=\"https://github.com/cpburnz/python-pathspec/blob/v1.0.0/CHANGES.rst\"\u003eCHANGES.rst\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/cpburnz/python-pathspec/blob/master/CHANGES.rst\"\u003epathspec's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.3 (2026-01-09)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eIssue [#101](https://github.com/cpburnz/python-pathspec/issues/101)\u003c/code\u003e_: pyright strict errors with pathspec \u0026gt;= 1.0.0.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eIssue [#102](https://github.com/cpburnz/python-pathspec/issues/102)\u003c/code\u003e_: No module named 'tomllib'.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _\u003ccode\u003eIssue [#101](https://github.com/cpburnz/python-pathspec/issues/101)\u003c/code\u003e: \u003ca href=\"https://redirect.github.com/cpburnz/python-pathspec/issues/101\"\u003ecpburnz/python-pathspec#101\u003c/a\u003e\n.. _\u003ccode\u003eIssue [#102](https://github.com/cpburnz/python-pathspec/issues/102)\u003c/code\u003e: \u003ca href=\"https://redirect.github.com/cpburnz/python-pathspec/issues/102\"\u003ecpburnz/python-pathspec#102\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.0.2 (2026-01-07)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eType hint \u003ccode\u003ecollections.abc.Callable\u003c/code\u003e does not properly replace \u003ccode\u003etyping.Callable\u003c/code\u003e until Python 3.9.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.1 (2026-01-06)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eIssue [#100](https://github.com/cpburnz/python-pathspec/issues/100)\u003c/code\u003e_: ValueError(f\u0026quot;{patterns=!r} cannot be empty.\u0026quot;) when using black.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _\u003ccode\u003eIssue [#100](https://github.com/cpburnz/python-pathspec/issues/100)\u003c/code\u003e: \u003ca href=\"https://redirect.github.com/cpburnz/python-pathspec/issues/100\"\u003ecpburnz/python-pathspec#100\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.0.0 (2026-01-05)\u003c/h2\u003e\n\u003cp\u003eMajor changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eIssue [#91](https://github.com/cpburnz/python-pathspec/issues/91)\u003c/code\u003e_: Dropped support of EoL Python 3.8.\u003c/li\u003e\n\u003cli\u003eAdded concept of backends to allow for faster regular expression matching. The backend can be controlled using the \u003ccode\u003ebackend\u003c/code\u003e argument to \u003ccode\u003ePathSpec()\u003c/code\u003e, \u003ccode\u003ePathSpec.from_lines()\u003c/code\u003e, \u003ccode\u003eGitIgnoreSpec()\u003c/code\u003e, and \u003ccode\u003eGitIgnoreSpec.from_lines()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRenamed \u0026quot;gitwildmatch\u0026quot; pattern back to \u0026quot;gitignore\u0026quot;. The \u0026quot;gitignore\u0026quot; pattern behaves slightly differently when used with \u003ccode\u003ePathSpec\u003c/code\u003e (\u003cem\u003egitignore\u003c/em\u003e as documented) than with \u003ccode\u003eGitIgnoreSpec\u003c/code\u003e (replicates \u003cem\u003eGit\u003c/em\u003e's edge cases).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAPI changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBreaking: protected method \u003ccode\u003epathspec.pathspec.PathSpec._match_file()\u003c/code\u003e (with a leading underscore) has been removed and replaced by backends. This does not affect normal usage of \u003ccode\u003ePathSpec\u003c/code\u003e or \u003ccode\u003eGitIgnoreSpec\u003c/code\u003e. Only custom subclasses will be affected. If this breaks your usage, let me know by \u003ccode\u003eopening an issue \u0026lt;https://github.com/cpburnz/python-pathspec/issues\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u0026quot;gitwildmatch\u0026quot; is now an alias for \u0026quot;gitignore\u0026quot;.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u003ccode\u003epathspec.patterns.GitWildMatchPattern\u003c/code\u003e is now an alias for \u003ccode\u003epathspec.patterns.gitignore.spec.GitIgnoreSpecPattern\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u003ccode\u003epathspec.patterns.gitwildmatch\u003c/code\u003e module has been replaced by the \u003ccode\u003epathspec.patterns.gitignore\u003c/code\u003e package.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u003ccode\u003epathspec.patterns.gitwildmatch.GitWildMatchPattern\u003c/code\u003e is now an alias for \u003ccode\u003epathspec.patterns.gitignore.spec.GitIgnoreSpecPattern\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u003ccode\u003epathspec.patterns.gitwildmatch.GitWildMatchPatternError\u003c/code\u003e is now an alias for \u003ccode\u003epathspec.patterns.gitignore.GitIgnorePatternError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRemoved: \u003ccode\u003epathspec.patterns.gitwildmatch.GitIgnorePattern\u003c/code\u003e has been deprecated since v0.4 (2016-07-15).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/db3f54e78f68824f641b186bf4a749d944e2153f\"\u003e\u003ccode\u003edb3f54e\u003c/code\u003e\u003c/a\u003e Releasse v1.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/1b6bdda35a44cf48edc67a71d8020c26e84a40ec\"\u003e\u003ccode\u003e1b6bdda\u003c/code\u003e\u003c/a\u003e Releasse v1.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/f9b556abd5eebe94ec70404f5c386bf4451f5437\"\u003e\u003ccode\u003ef9b556a\u003c/code\u003e\u003c/a\u003e Fix docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/9867f1a954c68e8a4dc9cdcf8bfc5ad018a7951c\"\u003e\u003ccode\u003e9867f1a\u003c/code\u003e\u003c/a\u003e Fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/85cb3cc18bf925bef3b00b74a8b11049826c0129\"\u003e\u003ccode\u003e85cb3cc\u003c/code\u003e\u003c/a\u003e Fix docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/66281233ae20aa1de22345c1eb004dad9592b55d\"\u003e\u003ccode\u003e6628123\u003c/code\u003e\u003c/a\u003e Fix 101 regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/0ff66291a073efa3daacb4ccace3ce60420923ba\"\u003e\u003ccode\u003e0ff6629\u003c/code\u003e\u003c/a\u003e Release v1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/cbb66012c088c9f51f33b86a22c1c44e9fdf228b\"\u003e\u003ccode\u003ecbb6601\u003c/code\u003e\u003c/a\u003e Release v1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/73a02203b9c9e90c58156e36cdda5853fbefc4fa\"\u003e\u003ccode\u003e73a0220\u003c/code\u003e\u003c/a\u003e Trusted publishing is a pain\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpburnz/python-pathspec/commit/4cf4e9788622b7ed451d0206cf1bc00b994a1701\"\u003e\u003ccode\u003e4cf4e97\u003c/code\u003e\u003c/a\u003e Trusted publishing is a pain\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cpburnz/python-pathspec/compare/v0.12.1...v1.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytokens` from 0.1.10 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/5d02d6df9bb9a779c901bdaf8681308ad9ae4748\"\u003e\u003ccode\u003e5d02d6d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tusharsadhwani/pytokens/issues/7\"\u003e#7\u003c/a\u003e from tusharsadhwani/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/23a9d936976b6e84bac722f428abdda24e602845\"\u003e\u003ccode\u003e23a9d93\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/b0e77e1627769dc51f058456a7d600f116ea70fa\"\u003e\u003ccode\u003eb0e77e1\u003c/code\u003e\u003c/a\u003e remove debug log\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/7fe68dbfe58472865dafa94f761cbc5f690c6d48\"\u003e\u003ccode\u003e7fe68db\u003c/code\u003e\u003c/a\u003e fix nested t string and f string edge case\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/858eff14064c1183ed4a99c5f64b8a3406e83417\"\u003e\u003ccode\u003e858eff1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tusharsadhwani/pytokens/issues/11\"\u003e#11\u003c/a\u003e from cjwatson/no-pycache\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/a130b98c2b7878a164f164b65f6109bd2f1d5fa3\"\u003e\u003ccode\u003ea130b98\u003c/code\u003e\u003c/a\u003e Don't include tests/\u003cstrong\u003epycache\u003c/strong\u003e in sdists\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/7dd6c2ce6b8475815c7b8a78567c11fb14b79510\"\u003e\u003ccode\u003e7dd6c2c\u003c/code\u003e\u003c/a\u003e Add t-string support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/0a9c1d4f2a3a71bb1b721fe7de6460ba1ac8802e\"\u003e\u003ccode\u003e0a9c1d4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tusharsadhwani/pytokens/issues/6\"\u003e#6\u003c/a\u003e from tusharsadhwani/packaging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/606253ed32d801c83adaeb84eb228a212176fa20\"\u003e\u003ccode\u003e606253e\u003c/code\u003e\u003c/a\u003e Update tests and fix packaging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tusharsadhwani/pytokens/commit/594b445644bceadd2bcce1443373cf0ff26cb328\"\u003e\u003ccode\u003e594b445\u003c/code\u003e\u003c/a\u003e Update docs: pytokens is no longer a console script\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tusharsadhwani/pytokens/compare/0.1.10...0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `soupsieve` from 2.8 to 2.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/soupsieve/releases\"\u003esoupsieve's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Changes in tests to accommodate latest Python HTML parser changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/soupsieve/commit/f89979745e12e83dbb31dde910a0ad08e9c5c717\"\u003e\u003ccode\u003ef899797\u003c/code\u003e\u003c/a\u003e Adjust changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/soupsieve/commit/1b964a850bb482cc183f3f70811b25487ba200ee\"\u003e\u003ccode\u003e1b964a8\u003c/code\u003e\u003c/a\u003e Switch to using Zensical for documents (\u003ca href=\"https://redirect.github.com/facelessuser/soupsieve/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/soupsieve/commit/046ce54956a0c30120038561e53b40994d29de2c\"\u003e\u003ccode\u003e046ce54\u003c/code\u003e\u003c/a\u003e Adjustments for changes in HTML parser (\u003ca href=\"https://redirect.github.com/facelessuser/soupsieve/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/soupsieve/compare/2.8...2.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `super-collections` from 0.6.0 to 0.6.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/super-collections/commit/550a1cfa79c9f085c069dd33e774358acc371717\"\u003e\u003ccode\u003e550a1cf\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of \u003ca href=\"https://github.com/fralau/super-collections\"\u003ehttps://github.com/fralau/super-collections\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/super-collections/commit/17c851c83c20e5ffb21a4006081b574a5d33bb64\"\u003e\u003ccode\u003e17c851c\u003c/code\u003e\u003c/a\u003e New fixes for \u003ca href=\"https://redirect.github.com/fralau/super-collections/issues/11\"\u003e#11\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/super-collections/commit/6cd708e15f2e8ddbbf8800154cb2804073dfc951\"\u003e\u003ccode\u003e6cd708e\u003c/code\u003e\u003c/a\u003e New fixes for \u003ca href=\"https://redirect.github.com/fralau/super-collections/issues/11\"\u003e#11\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/super-collections/commit/be5c394e6fa1ea15fe752ad0ede06b0b219964de\"\u003e\u003ccode\u003ebe5c394\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of \u003ca href=\"https://github.com/fralau/super-collections\"\u003ehttps://github.com/fralau/super-collections\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/super-collections/commit/21a16bf18ffef6c2f12bef16e887d1742f5072d5\"\u003e\u003ccode\u003e21a16bf\u003c/code\u003e\u003c/a\u003e Fix issue list[] and dict[] types for Python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/super-collections/commit/85576e4054f4f0e110325fab99ab28ad57146ccb\"\u003e\u003ccode\u003e85576e4\u003c/code\u003e\u003c/a\u003e Update test.yml (install [test] and not [dev])\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/super-collections/commit/27a1da89a511a8c7a2dbc5a033c4f6b294ee7e61\"\u003e\u003ccode\u003e27a1da8\u003c/code\u003e\u003c/a\u003e Workflow: correct error in version numbers (python-version)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/super-collections/commit/4f464eb974437e507c8f6c90e83b58437efd3b54\"\u003e\u003ccode\u003e4f464eb\u003c/code\u003e\u003c/a\u003e Fix issues with type hints for Shelf\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/super-collections/commit/c18204a10ee2f762a06697d774b8846693e9e5e9\"\u003e\u003ccode\u003ec18204a\u003c/code\u003e\u003c/a\u003e Improve documentation and little improvements\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fralau/super-collections/compare/v0.6.0...v0.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.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\u003ch2\u003e2.6.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-2xpw-w6gg-jr37)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by \u003ca href=\"https://github.com/illia-v\"\u003e\u003ccode\u003e@​illia-v\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-gm62-xv2j-4w53)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to  benefit from the security fixes and avoid warnings. Prefer using  \u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n...\n\n_Description has been truncated_","html_url":"https://github.com/tektronix/tm_data_types/pull/142","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tektronix%2Ftm_data_types/issues/142","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/142/packages"}},{"old_version":"0.5.0","new_version":"0.6.0","update_type":"minor","path":null,"pr_created_at":"2026-01-07T17:11:20.000Z","version_change":"0.5.0 → 0.6.0","issue":{"uuid":"3789593849","node_id":"PR_kwDOMFeY886786cl","number":141,"state":"open","title":"python-deps(deps): bump the python-dependencies group across 1 directory with 26 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["dependabot[bot]"],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-07T17:11:20.000Z","updated_at":"2026-01-07T17:20:00.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"python-deps(deps): bump","group_name":"python-dependencies","update_count":26,"packages":[{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"black","old_version":"25.9.0","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"mkdocs-gen-files","old_version":"0.5.0","new_version":"0.6.0","repository_url":"https://github.com/oprypin/mkdocs-gen-files"},{"name":"mkdocs-macros-plugin","old_version":"1.4.0","new_version":"1.5.0","repository_url":"https://github.com/fralau/mkdocs_macros_plugin"},{"name":"mkdocs-mermaid2-plugin","old_version":"1.2.2","new_version":"1.2.3","repository_url":"https://github.com/fralau/mkdocs-mermaid2-plugin"},{"name":"pymdown-extensions","old_version":"10.16.1","new_version":"10.20","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"tomli","old_version":"2.2.1","new_version":"2.3.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"beautifulsoup4","old_version":"4.14.2","new_version":"4.14.3"},{"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.1.8","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":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pathspec","old_version":"0.12.1","new_version":"1.0.1","repository_url":"https://github.com/cpburnz/python-pathspec"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [nodeenv](https://github.com/ekalinin/nodeenv), [pylint](https://github.com/pylint-dev/pylint), [pyright](https://github.com/RobertCraigie/pyright-python), [black](https://github.com/psf/black), [mkdocs-gen-files](https://github.com/oprypin/mkdocs-gen-files), [mkdocs-macros-plugin](https://github.com/fralau/mkdocs_macros_plugin), [mkdocs-mermaid2-plugin](https://github.com/fralau/mkdocs-mermaid2-plugin), [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions), [tomli](https://github.com/hukkin/tomli), [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/), [certifi](https://github.com/certifi/python-certifi), [charset-normalizer](https://github.com/jawah/charset_normalizer), [click](https://github.com/pallets/click), [idna](https://github.com/kjd/idna), [markdown](https://github.com/Python-Markdown/markdown), [pathspec](https://github.com/cpburnz/python-pathspec), [platformdirs](https://github.com/tox-dev/platformdirs), [pytokens](https://github.com/tusharsadhwani/pytokens), [soupsieve](https://github.com/facelessuser/soupsieve), [super-collections](https://github.com/fralau/super-collections), [termcolor](https://github.com/termcolor/termcolor), [urllib3](https://github.com/urllib3/urllib3), [coverage[toml]](https://github.com/coveragepy/coveragepy), [dnspython](https://github.com/rthalley/dnspython), [iniconfig](https://github.com/pytest-dev/iniconfig) and [networkx](https://github.com/networkx/networkx) to permit the latest version.\nUpdates `nodeenv` from 1.9.1 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ekalinin/nodeenv/releases\"\u003enodeenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.10.0 - drop\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixed bugs 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse lowercase lookup for archmap by \u003ca href=\"https://github.com/robmoss2k\"\u003e\u003ccode\u003e@​robmoss2k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/382\"\u003eekalinin/nodeenv#382\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/367\"\u003eekalinin/nodeenv#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd UV Virtual Environment support by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/386\"\u003eekalinin/nodeenv#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sh instead of bash by \u003ca href=\"https://github.com/WhyNotHugo\"\u003e\u003ccode\u003e@​WhyNotHugo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/389\"\u003eekalinin/nodeenv#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace additional use of \u003ccode\u003ewhich(1)\u003c/code\u003e with \u003ccode\u003eshutil.which()\u003c/code\u003e by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/355\"\u003eekalinin/nodeenv#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport leading \u003ccode\u003ev\u003c/code\u003e in \u003ccode\u003e.node-version\u003c/code\u003e by \u003ca href=\"https://github.com/nix6839\"\u003e\u003ccode\u003e@​nix6839\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/359\"\u003eekalinin/nodeenv#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck host platform when finding \u003ccode\u003enode\u003c/code\u003e version by \u003ca href=\"https://github.com/max0x53\"\u003e\u003ccode\u003e@​max0x53\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/363\"\u003eekalinin/nodeenv#363\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/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/367\"\u003eekalinin/nodeenv#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nix6839\"\u003e\u003ccode\u003e@​nix6839\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/359\"\u003eekalinin/nodeenv#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/max0x53\"\u003e\u003ccode\u003e@​max0x53\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/363\"\u003eekalinin/nodeenv#363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robmoss2k\"\u003e\u003ccode\u003e@​robmoss2k\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/382\"\u003eekalinin/nodeenv#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/386\"\u003eekalinin/nodeenv#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/WhyNotHugo\"\u003e\u003ccode\u003e@​WhyNotHugo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/389\"\u003eekalinin/nodeenv#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/355\"\u003eekalinin/nodeenv#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.0\"\u003ehttps://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.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/ekalinin/nodeenv/commit/9dee547f5e45c9d1b155e4351d165f2b504ae281\"\u003e\u003ccode\u003e9dee547\u003c/code\u003e\u003c/a\u003e chore: bump nodeenv version to 1.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/d45aabbf54139f5ecbaf9db05d3949d39999136e\"\u003e\u003ccode\u003ed45aabb\u003c/code\u003e\u003c/a\u003e chore: add pyright ignore comments for compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/55d6c21a6d56631c0c1d08a04d3c1ea3531ba832\"\u003e\u003ccode\u003e55d6c21\u003c/code\u003e\u003c/a\u003e chore: update AUTHORS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/5f694e6ac261f29233a28061e4af64669199721e\"\u003e\u003ccode\u003e5f694e6\u003c/code\u003e\u003c/a\u003e test: update test test_node_system_creates_shim\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/fa3fdfb1bf807d869795f5bf690359808cb5c529\"\u003e\u003ccode\u003efa3fdfb\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:ekalinin/nodeenv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/e868dbe29cad74819615d039b78af21bb2ae431d\"\u003e\u003ccode\u003ee868dbe\u003c/code\u003e\u003c/a\u003e Replace additional use of \u003ccode\u003ewhich(1)\u003c/code\u003e with \u003ccode\u003eshutil.which()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/b4cd00d453d9f4772c7c410dfbc57d7e757dad5e\"\u003e\u003ccode\u003eb4cd00d\u003c/code\u003e\u003c/a\u003e test: enhance activation tests for nodeenv with custom prompts and file handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/0b5ea9d55ad72ef30a5a7461e27b95c9453bd833\"\u003e\u003ccode\u003e0b5ea9d\u003c/code\u003e\u003c/a\u003e refactor(tests): improve readability of mock patches in nodeenv tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/37c0c304317b9a5646e1779d38b71c4c6928a0a5\"\u003e\u003ccode\u003e37c0c30\u003c/code\u003e\u003c/a\u003e ci: add GH workflow for testing and coverage in PR\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/326a7a4c1ced11fb3356cdd2c8511f9cdeb81ebc\"\u003e\u003ccode\u003e326a7a4\u003c/code\u003e\u003c/a\u003e test: add comprehensive tests for install_npm and install_npm_win functions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pylint` to 3.3.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/4cab7ca4eae88b75960fcf2479b8ddd377dd4ce2\"\u003e\u003ccode\u003e4cab7ca\u003c/code\u003e\u003c/a\u003e Bump pylint to 3.3.9, update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/81fb483fdeaa343bae73a72dadcf29c2c70ee41e\"\u003e\u003ccode\u003e81fb483\u003c/code\u003e\u003c/a\u003e [Backport maintenance/3.3.x] Extend catching of ValueError to 3.12.5+ (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10611\"\u003e#10611\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/1ef673b1fbfedf5575046376397885c046abd70a\"\u003e\u003ccode\u003e1ef673b\u003c/code\u003e\u003c/a\u003e [Backport maintenance/3.3.x] Fix flagging undeprecated importlib.resources fu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/194790c65856b282389e9754b6a0f4c98f05f9a5\"\u003e\u003ccode\u003e194790c\u003c/code\u003e\u003c/a\u003e Fix invalid refs in 3.3 whatsnew (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10578\"\u003e#10578\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10579\"\u003e#10579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/98238705507065c20bf62eb0ddbe021d44f9b111\"\u003e\u003ccode\u003e9823870\u003c/code\u003e\u003c/a\u003e fix: handle \u003ccode\u003einconsistent-return-statements\u003c/code\u003e false positive with \u003ccode\u003equit()\u003c/code\u003e/`ex...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/16fe1270fecf08a9b79483b9c9954adbe1a9d3e6\"\u003e\u003ccode\u003e16fe127\u003c/code\u003e\u003c/a\u003e fix: handle for-loop variable shadowing correctly (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10569\"\u003e#10569\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10571\"\u003e#10571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/6cf727cbf982f5d75c9a0162bcb493799f15896e\"\u003e\u003ccode\u003e6cf727c\u003c/code\u003e\u003c/a\u003e Add sphinx reference for whatsnew 3.3 (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10564\"\u003e#10564\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10565\"\u003e#10565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/641a316c3c9c9e0c32f5289445344ad6595c7b53\"\u003e\u003ccode\u003e641a316\u003c/code\u003e\u003c/a\u003e Use custom backport action (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10536\"\u003e#10536\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10537\"\u003e#10537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/65efb677aa3b74088c9f35293138ea2435f925a7\"\u003e\u003ccode\u003e65efb67\u003c/code\u003e\u003c/a\u003e [fix] Better approach in 'unnecessary-list-index-lookup' to avoid crashes (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/78444bb70696fbeee3df56f2fb9f36fed89b4971\"\u003e\u003ccode\u003e78444bb\u003c/code\u003e\u003c/a\u003e Fix used-before-assignment for PEP 695 type aliases + parameters (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10488\"\u003e#10488\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pylint-dev/pylint/compare/v3.3.8...v3.3.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` to 1.1.407\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/53e8efb4638daca6c541d18ad35dafb0e5d9f34d\"\u003e\u003ccode\u003e53e8efb\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.407 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/1d515b71299f9dc4c066ce37e673d93bda4bc2df\"\u003e\u003ccode\u003e1d515b7\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.406 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.405...v1.1.407\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 25.9.0 to 25.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where python 3.12 generics syntax split line happens weirdly (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize type comments to form \u003ccode\u003e# type: \u0026lt;value\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e preview feature to respect \u003ccode\u003e# fmt: skip\u003c/code\u003e for compound\nstatements with semicolon-separated bodies (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eno_cache\u003c/code\u003e option to control caching behavior. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4803\"\u003e#4803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Linux binaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4773\"\u003e#4773\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWrite unchanged content to stdout when excluding formatting from stdin using pipes\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented BlackDClient. This simple python client allows to easily send formatting\nrequests to blackd (\u003ca href=\"https://redirect.github.com/psf/black/issues/4774\"\u003e#4774\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable 3.14 base CI (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to support the \u003ccode\u003erequired-version\u003c/code\u003e major-version-only\n\u0026quot;stability\u0026quot; format when using pyproject.toml (\u003ca href=\"https://redirect.github.com/psf/black/issues/4770\"\u003e#4770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for vim plugin users. It now handles independently vim version\u003c/li\u003e\n\u003cli\u003eVim: Warn on unsupported Vim and Python versions independently (\u003ca href=\"https://redirect.github.com/psf/black/issues/4772\"\u003e#4772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Print the import paths when importing black fails (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Fix handling of virtualenvs that have a different Python version (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where python 3.12 generics syntax split line happens weirdly (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize type comments to form \u003ccode\u003e# type: \u0026lt;value\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e preview feature to respect \u003ccode\u003e# fmt: skip\u003c/code\u003e for compound\nstatements with semicolon-separated bodies (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eno_cache\u003c/code\u003e option to control caching behavior. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4803\"\u003e#4803\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Linux binaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4773\"\u003e#4773\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWrite unchanged content to stdout when excluding formatting from stdin using pipes\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented BlackDClient. This simple python client allows to easily send formatting\nrequests to blackd (\u003ca href=\"https://redirect.github.com/psf/black/issues/4774\"\u003e#4774\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable 3.14 base CI (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to support the \u003ccode\u003erequired-version\u003c/code\u003e major-version-only\n\u0026quot;stability\u0026quot; format when using pyproject.toml (\u003ca href=\"https://redirect.github.com/psf/black/issues/4770\"\u003e#4770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for vim plugin users. It now handles independently vim version\u003c/li\u003e\n\u003cli\u003eVim: Warn on unsupported Vim and Python versions independently (\u003ca href=\"https://redirect.github.com/psf/black/issues/4772\"\u003e#4772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Print the import paths when importing black fails (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVim: Fix handling of virtualenvs that have a different Python version (\u003ca href=\"https://redirect.github.com/psf/black/issues/4675\"\u003e#4675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/05f0a8ce1f71fbb36e1e032d3b518c7b945089a2\"\u003e\u003ccode\u003e05f0a8c\u003c/code\u003e\u003c/a\u003e Prepare for 25.11.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4825\"\u003e#4825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ae17c61310e44401ca55d17a9c01db1dc03940a6\"\u003e\u003ccode\u003eae17c61\u003c/code\u003e\u003c/a\u003e Fix tests on pytest 9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4835\"\u003e#4835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/138745eca650aa59ab30458f7b1c026b66608a09\"\u003e\u003ccode\u003e138745e\u003c/code\u003e\u003c/a\u003e Include Windows and Python 3.14 in PR wheel build matrix, fix Windows build (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/18170d6d8d9bdde97d4cd3568cfa8be434a09ff3\"\u003e\u003ccode\u003e18170d6\u003c/code\u003e\u003c/a\u003e ci: add label for running all builds on a pull request (\u003ca href=\"https://redirect.github.com/psf/black/issues/4833\"\u003e#4833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0e793e3d7e0d12dbda1573fa1bb785b1f066ee7c\"\u003e\u003ccode\u003e0e793e3\u003c/code\u003e\u003c/a\u003e fix windows wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4830\"\u003e#4830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b71f36c9fda07930c83e22681e0ec08ddf5a3980\"\u003e\u003ccode\u003eb71f36c\u003c/code\u003e\u003c/a\u003e Use build[uv] as cibuildwheel frontend (\u003ca href=\"https://redirect.github.com/psf/black/issues/4831\"\u003e#4831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a7bd594493bb5cb703beee877a2df40556b0baaa\"\u003e\u003ccode\u003ea7bd594\u003c/code\u003e\u003c/a\u003e Skip free threaded builds in cibuildwheel (\u003ca href=\"https://redirect.github.com/psf/black/issues/4829\"\u003e#4829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/862dee91fa1259ca2bc00f10538b52a4959bdbe8\"\u003e\u003ccode\u003e862dee9\u003c/code\u003e\u003c/a\u003e Update cibuildwheel (\u003ca href=\"https://redirect.github.com/psf/black/issues/4828\"\u003e#4828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b5f354c56627640e0b853af51a51d9262bafa9f0\"\u003e\u003ccode\u003eb5f354c\u003c/code\u003e\u003c/a\u003e build: restrict to pytest 9.0 due to breakage in custom pytest_configure (\u003ca href=\"https://redirect.github.com/psf/black/issues/4827\"\u003e#4827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f705197f57149b79ed83cccf22e4fed19b48a7bf\"\u003e\u003ccode\u003ef705197\u003c/code\u003e\u003c/a\u003e t-string support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.9.0...25.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-gen-files` from 0.5.0 to 0.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/releases\"\u003emkdocs-gen-files's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCompatibility with MkDocs 1.6 is improved - generated files don't have to have an \u003ccode\u003eabs_src_path\u003c/code\u003e - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThere was a bug: using \u003ccode\u003eedit_uri_template\u003c/code\u003e in MkDocs would prevent \u003ccode\u003eset_edit_path()\u003c/code\u003e from working.\nThis is now fixed - \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/37\"\u003e#37\u003c/a\u003e - thanks to \u003ca href=\"https://github.com/frankkusters\"\u003e\u003ccode\u003e@​frankkusters\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe MkDocs configuration file now can be \u003ccode\u003emkdocs.yaml\u003c/code\u003e, not only \u003ccode\u003emkdocs.yml\u003c/code\u003e. Thanks to \u003ca href=\"https://github.com/mgor\"\u003e\u003ccode\u003e@​mgor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/pull/39\"\u003eoprypin/mkdocs-gen-files#39\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMkDocs 1.4.1 is now the lowest supported version -  \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/2e47124f6a00150b40e2694cfb721d4f373be914\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.9 is now the lowest supported version.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ca href=\"https://oprypin.github.io/mkdocs-gen-files/extras.html#programmatically-generating-the-navigation\"\u003enav generator\u003c/a\u003e can support empty paths - \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ehttps://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.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/oprypin/mkdocs-gen-files/commit/5136a79ab5af156688cca28fb1c081204250159b\"\u003e\u003ccode\u003e5136a79\u003c/code\u003e\u003c/a\u003e v0.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/df9d4dc3fb81edb6b9337e03a24421cc6f040d52\"\u003e\u003ccode\u003edf9d4dc\u003c/code\u003e\u003c/a\u003e Add a workaround that allows edit_uri_template to work in MkDocs 1.6+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/e0e32472a5651f30545354cbd903e26091f50b38\"\u003e\u003ccode\u003ee0e3247\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003e.yaml\u003c/code\u003e extension for mkdocs configuration file (\u003ca href=\"https://redirect.github.com/oprypin/mkdocs-gen-files/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/bfe7bbcf0b336d5d9f5d395224b4d063c10c3778\"\u003e\u003ccode\u003ebfe7bbc\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/d56e1d95d927bc53afc5f18ec9ef8167e9b4de13\"\u003e\u003ccode\u003ed56e1d9\u003c/code\u003e\u003c/a\u003e Update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/440b0bfafa35bd1b1b3b3ed5aaa7b9f11d9cfe7c\"\u003e\u003ccode\u003e440b0bf\u003c/code\u003e\u003c/a\u003e Support empty path in \u003ccode\u003eNav\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/85d56eb8ed6eccf1528ca158dbf97c8f0b6bb72e\"\u003e\u003ccode\u003e85d56eb\u003c/code\u003e\u003c/a\u003e Add more lints, update deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/1a822d9e0d376d8ecae95fb961144a5af4887ef1\"\u003e\u003ccode\u003e1a822d9\u003c/code\u003e\u003c/a\u003e Update template, fix lints, update docs deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/7baa03225e6c34cc85d17f79c47e42eb2c2e359e\"\u003e\u003ccode\u003e7baa032\u003c/code\u003e\u003c/a\u003e Fix types and compatibility with MkDocs 1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/commit/6fd0fe048ebf928763458d8dba1a476ca2196117\"\u003e\u003ccode\u003e6fd0fe0\u003c/code\u003e\u003c/a\u003e Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/oprypin/mkdocs-gen-files/compare/v0.5.0...v0.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-macros-plugin` from 1.4.0 to 1.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/blob/master/CHANGELOG.md\"\u003emkdocs-macros-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.0, 2025-11-13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: For each push, testing on github for versions Python 3.8 to 3.12\u003c/li\u003e\n\u003cli\u003eFixed: bug in import of packages when not in source dir (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.1, 2025-10-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: support for j2_extensions paramater in config file (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed: missing dependency declaration on \u003ccode\u003erequests\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/0536f4da1dc643e1fa1f0cc90e71512ada67dc04\"\u003e\u003ccode\u003e0536f4d\u003c/code\u003e\u003c/a\u003e Fix type hint for compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/d9a6bc3aac5b12b86f9e2be7af18e1e9178287f6\"\u003e\u003ccode\u003ed9a6bc3\u003c/code\u003e\u003c/a\u003e Require mkdocs-test\u0026gt;=0.6.0 (compatibility with Python 3.8 and 3.9)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/bcaa72db2820d60822ffba15e87c75669abc7b92\"\u003e\u003ccode\u003ebcaa72d\u003c/code\u003e\u003c/a\u003e Make last minute corrections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/356fc2a5b55d1897a2f2c47856d52b10cff4611c\"\u003e\u003ccode\u003e356fc2a\u003c/code\u003e\u003c/a\u003e Prepare for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/aaf16bdcb9dfcb9c6ea9b6567ea4af7f8c178185\"\u003e\u003ccode\u003eaaf16bd\u003c/code\u003e\u003c/a\u003e Limit testing to 3.10 up (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/ba5356c0c263355556aa82dad0fbfde3cce4bc4d\"\u003e\u003ccode\u003eba5356c\u003c/code\u003e\u003c/a\u003e Use proper exit for pytest if Python \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/6c796600bc0886696ce9b76b84354d7e2bc1b6fa\"\u003e\u003ccode\u003e6c79660\u003c/code\u003e\u003c/a\u003e Skip test_modules.py if Python version \u0026lt; 3.10 (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cec7440d46589b303d741a5e2df0a240c25b9bdb\"\u003e\u003ccode\u003ecec7440\u003c/code\u003e\u003c/a\u003e Test installation of d2 in a cross-platform way (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/492759c5ab3d05f7c55ec62ffdf9573b715ac6ed\"\u003e\u003ccode\u003e492759c\u003c/code\u003e\u003c/a\u003e Update with changes from local repo (\u003ca href=\"https://redirect.github.com/fralau/mkdocs_macros_plugin/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-macros-plugin/commit/cc5416834a07ffd2ba1fe3d917a701ac6e9c98ad\"\u003e\u003ccode\u003ecc54168\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:fralau/mkdocs_macros_plugin\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fralau/mkdocs_macros_plugin/compare/v1.4.0...v1.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-mermaid2-plugin` from 1.2.2 to 1.2.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/blob/master/CHANGELOG.md\"\u003emkdocs-mermaid2-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.3, 2025-10-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded: documented the use of variables and macros with MkDocs-Macros\nin Tips and Tricks (\u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/123\"\u003e#123\u003c/a\u003e); dividing the the page into 3 sections.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/59498d0c537c7dc660cd362fd887464e9ec027ed\"\u003e\u003ccode\u003e59498d0\u003c/code\u003e\u003c/a\u003e Reorganize Tips and Tricks page\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/0304ac52c8a9dd256d899b24101da90aa3e901ae\"\u003e\u003ccode\u003e0304ac5\u003c/code\u003e\u003c/a\u003e Improve documentation of how to use Mkdocs-Macros (\u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/123\"\u003e#123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/d1cf04b27eace33b2004dc1c68f9536cf6d4b397\"\u003e\u003ccode\u003ed1cf04b\u003c/code\u003e\u003c/a\u003e Insert suggestion to use MkDocs-Macros for variables and macros\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/compare/v1.2.2...v1.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymdown-extensions` from 10.16.1 to 10.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/releases\"\u003epymdown-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e10.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Quotes: New blockquotes extension added that uses a more modern approach when compared to Python Markdown's\ndefault. Quotes specifically will not group consecutive blockquotes together in the same lazy fashion that the\ndefault Python Markdown does which follows a more modern trend to how parsers these days handle block quotes.\u003c/p\u003e\n\u003cp\u003eIn addition, Quotes also provides an optional feature to enable specifying callouts/alerts in the style used by\nGitHub and Obsidian.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.19.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Arithmatex: Fix issue where block \u003ccode\u003e$$\u003c/code\u003e math used inline within a paragraph could result in nested math\nparsing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Emoji: Update Twemoji to use Unicode 16.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Critic: Roll back \u003ccode\u003eview\u003c/code\u003e mode deprecation as some still like to use it, though further enhancements to this\nmode are not planned.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Critic: \u003ccode\u003eview\u003c/code\u003e mode has been deprecated. To avoid warnings or future issues, explicitly set \u003ccode\u003emode\u003c/code\u003e to\neither \u003ccode\u003eaccept\u003c/code\u003e or \u003ccode\u003ereject\u003c/code\u003e. In the future, the new default will be \u003ccode\u003eaccept\u003c/code\u003e and the \u003ccode\u003eview\u003c/code\u003e mode will be removed\nentirely.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Block Admonition: \u003ccode\u003eimportant\u003c/code\u003e should have always been available as a default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.17.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Blocks: Blocks extensions will now better handle nesting of indented style Admonitions, Details, and Tabbed\nand other non-conflicting blocks.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.17.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix an issue where Highlight can override another extension in the \u0026quot;registered\u0026quot; list in Python Markdown.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Allow specifying static IDs in caption block headers via \u003ccode\u003e#id\u003c/code\u003e syntax.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/7d5c4be60578aefef323126467576eaff1e5e354\"\u003e\u003ccode\u003e7d5c4be\u003c/code\u003e\u003c/a\u003e Quotes: Add nesting examples, fix some grammar, and add nesting test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/9d5b64ac9b2c52b067951d9d83eefed54173ce23\"\u003e\u003ccode\u003e9d5b64a\u003c/code\u003e\u003c/a\u003e Update notes about the new callouts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/531a77a36150a0dc1c9076271fb399a3ffbf856c\"\u003e\u003ccode\u003e531a77a\u003c/code\u003e\u003c/a\u003e Docs: make line number hover stand out more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/0d7be849125bc2266fe7430f6be85ea467f9b088\"\u003e\u003ccode\u003e0d7be84\u003c/code\u003e\u003c/a\u003e Revert change to line wrapping\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/6f9cb091e6e464951ddcff7978f1b04244089694\"\u003e\u003ccode\u003e6f9cb09\u003c/code\u003e\u003c/a\u003e Wrap lines table format as well and adjust docs theme line highlight\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/97f716600719399d412c616092361001f80329d8\"\u003e\u003ccode\u003e97f7166\u003c/code\u003e\u003c/a\u003e Wrap Pygments lines with \u0026lt;span\u0026gt; to allow for better styling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/ad0d49397f5ea64e8c9714eb56471cb54eecd0a7\"\u003e\u003ccode\u003ead0d493\u003c/code\u003e\u003c/a\u003e Update map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/753ddde120b645e45c71b00214023ed9a3e0a7cd\"\u003e\u003ccode\u003e753ddde\u003c/code\u003e\u003c/a\u003e Tweak admonition colors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/7e686eed2f31ab1a96f90ce1dd919bc68f5794a1\"\u003e\u003ccode\u003e7e686ee\u003c/code\u003e\u003c/a\u003e Docs: Update JS deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/2703d81bc90226e46f7eb61894c4552e9543d69a\"\u003e\u003ccode\u003e2703d81\u003c/code\u003e\u003c/a\u003e Add custom blockquote extension (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/compare/10.16.1...10.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tomli` from 2.2.1 to 2.3.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.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003eBinary wheels for Python 3.14 (also free-threaded)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePerformance\n\u003cul\u003e\n\u003cli\u003eReduced import time\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/3fccd16450d0f1d87c042473d95a07f60955206e\"\u003e\u003ccode\u003e3fccd16\u003c/code\u003e\u003c/a\u003e Bump version: 2.2.1 → 2.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/65040163ea9b528b2d37a1bb5df886472c310930\"\u003e\u003ccode\u003e6504016\u003c/code\u003e\u003c/a\u003e Add 2.3.0 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/0bc66fcab1f766fe410ffeebfe9ec1ec646f1681\"\u003e\u003ccode\u003e0bc66fc\u003c/code\u003e\u003c/a\u003e Remove now off-by-default PyPy from cibuildwheel skip list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/0aa242f3188f4b892e434f1b4d23818fcd978615\"\u003e\u003ccode\u003e0aa242f\u003c/code\u003e\u003c/a\u003e Update license metadata to appease PEP 639\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/a18221eb5c3f4592285f533d48e68432132bc37b\"\u003e\u003ccode\u003ea18221e\u003c/code\u003e\u003c/a\u003e Bump GitHub CI actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/6fa4d90aa9bb1693b327c72fd18a6c925d1dd5d7\"\u003e\u003ccode\u003e6fa4d90\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/260\"\u003e#260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/b974fa13a96503546e47a895ac123d5c8425bc9a\"\u003e\u003ccode\u003eb974fa1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/f574f366d40b2fa0672177f06df4d6dfc4188356\"\u003e\u003ccode\u003ef574f36\u003c/code\u003e\u003c/a\u003e Update mypy to 1.15 and use \u003ccode\u003e--strict\u003c/code\u003e mode (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/257\"\u003e#257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/1da01ef78fee9f491f55feb5e2d9fcf24d4977f0\"\u003e\u003ccode\u003e1da01ef\u003c/code\u003e\u003c/a\u003e Reduce import time by removing \u003ccode\u003etyping\u003c/code\u003e import (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/251\"\u003e#251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/41881885a360e9f6526badafc1c5b2eec4133393\"\u003e\u003ccode\u003e4188188\u003c/code\u003e\u003c/a\u003e Reduce import time by removing \u003ccode\u003estring\u003c/code\u003e and \u003ccode\u003etomli._types\u003c/code\u003e imports\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hukkin/tomli/compare/2.2.1...2.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.14.2 to 4.14.3\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.1.8 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.1.8...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 `markdown` from 3.9 to 3.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etitle: Changelog\ntoc_depth: 2\u003c/p\u003e\n\u003ch1\u003ePython-Markdown Changelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.1.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to the\n\u003ca href=\"https://packaging.python.org/en/latest/specifications/version-specifiers/\"\u003ePython Version Specification\u003c/a\u003e.\nSee the \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/contributing.md\"\u003eContributing Guide\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e[Unreleased]\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/746f7f527b15f63845253e3b86947b806ef1b98f\"\u003e\u003ccode\u003e746f7f5\u003c/code\u003e\u003c/a\u003e cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/a5ee2b4aad05531898ab8fd726c7ece31ddadf8b\"\u003e\u003ccode\u003ea5ee2b4\u003c/code\u003e\u003c/a\u003e Revert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/5354daf618149f92580a1407c036115753c5df73\"\u003e\u003ccode\u003e5354daf\u003c/code\u003e\u003c/a\u003e Fix an HTML comment parsing case that can cause an infinite loop\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pathspec` from 0.12.1 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cpburnz/python-pathspec/releases\"\u003epathspec's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cp\u003eRelease v1.0.1. See \u003ca href=\"https://github.com/cpburnz/python-pathspec/blob/v1.0.1/CHANGES.rst\"\u003eCHANGES.rst\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eRelease v1.0.0. See \u003ca href=\"https://github.com/cpburnz/python-pathspec/blob/v1.0.0/CHANGES.rst\"\u003eCHANGES.rst\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/cpburnz/python-pathspec/blob/master/CHANGES.rst\"\u003epathspec's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2026-01-06)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eIssue [#100](https://github.com/cpburnz/python-pathspec/issues/100)\u003c/code\u003e_: ValueError(f\u0026quot;{patterns=!r} cannot be empty.\u0026quot;) when using black.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _\u003ccode\u003eIssue [#100](https://github.com/cpburnz/python-pathspec/issues/100)\u003c/code\u003e: \u003ca href=\"https://redirect.github.com/cpburnz/python-pathspec/issues/100\"\u003ecpburnz/python-pathspec#100\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.0.0 (2026-01-05)\u003c/h2\u003e\n\u003cp\u003eMajor changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eIssue [#91](https://github.com/cpburnz/python-pathspec/issues/91)\u003c/code\u003e_: Dropped support of EoL Python 3.8.\u003c/li\u003e\n\u003cli\u003eAdded concept of backends to allow for faster regular expression matching. The backend can be controlled using the \u003ccode\u003ebackend\u003c/code\u003e argument to \u003ccode\u003ePathSpec()\u003c/code\u003e, \u003ccode\u003ePathSpec.from_lines()\u003c/code\u003e, \u003ccode\u003eGitIgnoreSpec()\u003c/code\u003e, and \u003ccode\u003eGitIgnoreSpec.from_lines()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRenamed \u0026quot;gitwildmatch\u0026quot; pattern back to \u0026quot;gitignore\u0026quot;. The \u0026quot;gitignore\u0026quot; pattern behaves slightly differently when used with \u003ccode\u003ePathSpec\u003c/code\u003e (\u003cem\u003egitignore\u003c/em\u003e as documented) than with \u003ccode\u003eGitIgnoreSpec\u003c/code\u003e (replicates \u003cem\u003eGit\u003c/em\u003e's edge cases).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAPI changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBreaking: protected method \u003ccode\u003epathspec.pathspec.PathSpec._match_file()\u003c/code\u003e (with a leading underscore) has been removed and replaced by backends. This does not affect normal usage of \u003ccode\u003ePathSpec\u003c/code\u003e or \u003ccode\u003eGitIgnoreSpec\u003c/code\u003e. Only custom subclasses will be affected. If this breaks your usage, let me know by \u003ccode\u003eopening an issue \u0026lt;https://github.com/cpburnz/python-pathspec/issues\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u0026quot;gitwildmatch\u0026quot; is now an alias for \u0026quot;gitignore\u0026quot;.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u003ccode\u003epathspec.patterns.GitWildMatchPattern\u003c/code\u003e is now an alias for \u003ccode\u003epathspec.patterns.gitignore.spec.GitIgnoreSpecPattern\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u003ccode\u003epathspec.patterns.gitwildmatch\u003c/code\u003e module has been replaced by the \u003ccode\u003epathspec.patterns.gitignore\u003c/code\u003e package.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u003ccode\u003epathspec.patterns.gitwildmatch.GitWildMatchPattern\u003c/code\u003e is now an alias for \u003ccode\u003epathspec.patterns.gitignore.spec.GitIgnoreSpecPattern\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecated: \u003ccode\u003epathspec.patterns.gitwildmatch.GitWildMatchPatternError\u003c/code\u003e is now an alias for \u003ccode\u003epathspec.patterns.gitignore.GitIgnorePatternError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRemoved: \u003ccode\u003epathspec.patterns.gitwildmatch.GitIgnorePattern\u003c/code\u003e has been deprecated since v0.4 (2016-07-15).\u003c/li\u003e\n\u003cli\u003eSignature of method \u003ccode\u003epathspec.pattern.RegexPattern.match_file()\u003c/code\u003e has been changed from \u003ccode\u003edef match_file(self, file: str) -\u0026gt; RegexMatchResult | None\u003c/code\u003e to \u003ccode\u003edef match_file(self, file: ...\n\n_Description has been truncated_","html_url":"https://github.com/tektronix/tm_data_types/pull/141","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tektronix%2Ftm_data_types/issues/141","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/141/packages"}}]}